CS2335
Master 1.0.0
Master 1.0.0
  • Introduction
  • Introduction
    • Introduction
      • Game Design
    • Unity - Download
    • Visual Studio - IDE
    • Unity Manual, Scripting API
  • Unity Basics
    • Unity Editor Windows
    • Behavior Components
    • 2D Project, Scenes
      • Create 2D Sprite GameObject
      • Create UI-Text GameObject
    • MonoBehavior - Base-Class
    • Create a Custom C# Script
  • Game Coding Structures
    • Games Overview
    • Unity Engine - Event Functions
    • Finite State Machines
    • UML Class Diagram
  • Animation
    • Animator Controller
    • Animation Steps
      • Optional: Dead Animation
    • PlayerController.cs V0
  • Project 1 - Player
    • Player GameObject v1
      • C# Generics, Statics
    • Player GameObject - Jump
    • PlayerController.cs V2-Jump
    • PickUp PreFabs
      • Sorting Layers
    • PlayerController.cs V3-Collide
    • GameData Version1
    • GameData Version2
    • PlayerController V4-Score
  • Project 1 Details
    • Project1 GameObjects
    • PlayerStats Version1
      • UI-Canvas
    • Utility Class
    • Simple Spawner
    • MiniGameManager
      • Logic Diagrams
      • StartButton
      • ResultsPanel
  • Project1 Enhancements
    • PickUp - SelfDestruct
    • Spawn from List of Prefabs
  • Project 2 - StateManager
    • Project 2 - Learning Objectives
      • Inspiration
        • Branching Story Structures
        • Branching Structures
        • Hero's Journey
        • Visual Novel in Unity-Links
    • Project 2 - Starter Assets
    • State Machine Framework
    • StateManager - Singleton Design Pattern
    • Interface IStateBase
    • Create SceneXState.cs
    • OptionPanel Prefab
      • UI Images: Sprite Sheets
      • Button Image-Transitions
    • Project 2 - List of Steps
    • Project 2 - Starter Code
  • Project 2 -Dialogue
    • Hide_Show_Panel Script
    • Edit OptionPanel
    • Simple DialogPrefab
    • Conversation Entry
    • SimpleDialog.cs
    • ScriptableObjects
      • Scriptable Object Factory
    • Conversation Scriptable Objects
    • DialogManager_ConvList
      • DialogManager V2
      • Coroutines: Dynamic Text
      • DialogPrefab wImage
  • Overview: Branching Logic
    • DialogTrigger
    • Dictionary Data-Structure
      • Unity PlayerPrefs Dictionary
    • GameData Version3
    • Dictionary: choiceData
      • SaveChoice, ChoicePanel
        • choiceData - examples
          • Dictionary Value to Disable Options
    • Configure UI-Button Listeners
      • NPC Animation
      • NPC Activation
    • UI-Triggered Animations
    • Simple Inventory
    • EndState Conditions
    • Script ExecutionOrder
    • Custom UnityEvents
    • PlayerStats v2
      • ModifyPlayerData
      • BuyItem
    • Text Input
  • UI Components
    • Finding Game Objects
    • Game Objects: UI vs. 2D Sprite
    • UI Elements
      • Canvas: Screen-Space Render-Mode
      • UI-Buttons To Change Scene
  • Proj4: Inventory System
    • Inventory-System
      • GameData version4
      • Install and Configure
      • Diagrams, Resources
        • Item, Gem, Potion Classes
        • Inventory Class
      • InventoryDisplay, Slot UI
        • InventoryDisplay Class
        • Slot Class
        • Hazard Class
        • Layout Groups
      • Customization Steps
        • Configure Animation
        • AddItem Button
        • Concrete Class: Food
        • MiniGame Mods
          • PlayerController Mods
      • Code: InventorySystem
        • GameData, PickUp Mods
      • Resources: Data Structures
  • Custom Unity Events
    • Event Publishing Patterns
    • Custom Event Messaging
  • Proj4: Mini-Game
    • Simplified Mini-Game
      • PlayerController_v2 Mods
        • PlayerController_v2_final
      • MiniGameManager_v2
    • MiniGame-Overview-Proj4
    • LevelManager
      • LevelManager Logic Diagram
      • LevelManager FSM
      • LoadLevel, StartLevel Logic
      • Code Framework
    • Timer
  • Project 4 - Code Mods
    • Project 4 - Steps
    • Project 4 - Code
      • Code: Final Versions
        • PlayerController Mods
          • PlayerController_v2 Mods
        • GameData - Final
        • LevelManager
        • PlayerStats - Final
        • PickUp, Hazard, ScorePickUp
        • Spawner - Final
        • CameraFollow
        • ScreenFader
        • MiniGameState
        • Example: EndState
      • MiniGameWin Logic
  • Optional, Supplemental Content
    • Optional Content
      • Particle Systems
      • Adding Audio
      • Screen Fading and Reloading
      • ScriptableObjects
      • Disable Debug Logging
      • Events and Actions
      • Saving Data - Serialization
      • Parallax Scrolling
      • Change Sprites
    • XR - Extended Reality
  • Computing Concepts
    • Programming Patterns
      • State - FSM
      • Singleton Pattern
    • C# Language
      • Variables
      • Delegates
      • Dictionary
      • Enum
      • Encapsulation
        • C# Properties
        • Access Modifiers
      • Generics < T >
      • Inheritance
      • Interface
      • List< T >
      • Polymorphism
      • Queue< T >
      • Switch-Case
      • Foreach
      • Static
      • Ternary Operator: ?
      • this
    • Diagrams
      • State Machine Framework
      • UML Class Diagrams
      • Level Manager Logic Diagram
      • Flow-Chart: NumberGame
      • FSM: NumberGame
    • Tools
    • Glossary
    • References and Resources
    • Random Thoughts
Powered by GitBook
On this page
  • Installation Details
  • Configuration Details - Fix any Code Errors
  • Step 1: BeginScene - GameData issues:
  • Step 2 - Add Prefabs to Canvas in Scene
  • Edit ISimple_Inventory Prefab: Attach InventoryDisplay.cs Script
  • Play the Scene to Verify Installation / Configuration

Was this helpful?

  1. Proj4: Inventory System
  2. Inventory-System

Install and Configure

Installation, Configuration details for the Inventory System.

PreviousGameData version4NextDiagrams, Resources

Last updated 5 years ago

Was this helpful?

Video that shows Installation and Configuration of the Inventory System Described Below

Installation Details

Version1: Disabled Link: Download Link: Inventory System Code Unity Package

IMPORTANT; If you imported InventorySystem prior to using the updated version 2, 4/11/2020, then import the updated code files using the package below.

Step 1. IMPORTANT: Prior to Importing the Package: DELETE the following Scripts in your project: PickUp.cs, GameData.cs You will import new versions of these files, so you need to delete the old versions to insure you don't end up with 2 instances of a script. If the package scripts are in a different folder structure than they are in your project, then they won't get overwritten and you'll have 2 versions of the scripts, it may be difficult to tell which one needs to be deleted, so do that as the first step.

Step 2. Import Custom Package: In your Unity project, select top menu: Assets > Import Package > Custom Package: Select from downloads: InventorySystem_S20_v1

You should see the items listed in the image below. Submit using the Import Button

Configuration Details - Fix any Code Errors

//FIX CODE IN PlayerStats.cs
private void UpdateDisplay()
    {
        scoreText.text = "Score: " + GameData.instanceRef.Score; //replace .TotalScore
        healthText.text = "Health: " + GameData.instanceRef.Health;
    }

Step 1: BeginScene - GameData issues:

  • In BeginScene, make sure the GameManager gameObject has no errors on the GameData.cs script component. (TO FIX: Remove component, re-add)

  • Create an Inventory ScriptableObject: named: Inventory. ( no additional configuration needed for GameInventory scriptableObject )

  • Add GameInventory scriptableObject to the GameData.cs component on GameManager.

Step 2 - Add Prefabs to Canvas in Scene

In the Prefabs Folder, find the ISimple_Inventory and the BtnAddDiamond prefabs Drag both prefabs onto the Canvas. Position the objects by setting the Rect-Transform Anchors so they are constrained and visible in the SceneView as shown in the image below

Edit ISimple_Inventory Prefab: Attach InventoryDisplay.cs Script

Edit the InventoryDisplay Prefab by Attaching InventoryDisplay.cs to the Top-Level Panel of ISimple_Inventory Prefab. Save Project and Scene. Note in the image below: the InventoryDisplay.cs component has been added. Also note the use of a Grid Layout Group Component.

Play the Scene to Verify Installation / Configuration

When playing the scene, you should be able to click the btnAddDiamond button and see items added to 1-cell of the ISimple_Inventory prefab. Clicking the item within the inventory should remove an item from the grid. If you play the scene with GameData selected in the Hierarchy, you should be able to see the inventory scriptableObject dynamically changing to show items added and removed from the inventory display.

UPDATED - Version 2: 4/11/2020

- 4/13/2020

IMPORTANT FIX POSSIBLE CODE ERRORS: See for Possible Errors in PlayerStats.cs due to inconsistent variable name: score / Score vs totalScore / TotalScore in GameData.cs

Download Link: Inventory System Code - Version 2 - Unity Package
Updated Inventory System Code Files - To overwrite Version 1 - files:
Details for Fix
Import Custom Package