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
  • Overview - Video
  • Download, Install Inventory-System Code in Unity Package
  • Fix Unity Errors due to changes in GameData, PlayerController, PickUp classes.
  • To Configure: Inventory Display: Go to linked page below
  • Acknowledgements: Inventory Systems: Reference Tutorials

Was this helpful?

  1. Proj4: Inventory System

Inventory-System

PreviousUI-Buttons To Change SceneNextGameData version4

Last updated 5 years ago

Was this helpful?

Overview - Video

The video linked below gives an overview of the Inventory System. It shows a Unity Scene where the InventoryDisplay and 2 Buttons to add items have also been added to the Canvas. Clicking the buttons adds items to the InventoryDisplay panel's slots. Clicking on a slot that has an item, removes the item, and the console displays a message saying the item has been used. Then the video shows the UML class diagram of classes

Download, Install Inventory-System Code in Unity Package

Download: The code for these classes is included in the Inventory System Code package. Disabled: Download Link: Inventory System Code Unity Package - V1 updated 4/3/2020

IMPORTANT: Importing this package will overwrite all of the existing files listed below, you will need to fix some minor issues detailed in the section below.

** See Links at bottom of this page for the tutorials, acknowledgements for this Inventory systems used to derive this customized Inventory system.

Updated Apr 3,2020

The Inventory System uses the following Classes:

ScriptableObject Classes - Data-Model

  • abstract class Item: ScriptableObject

  • class ItemInstance: ScriptableObject

  • class Inventory: ScriptableObject

  • classes for custom Items:

    • class Gem: Item

    • class Potion: Item

MonoBehaviour Classes: Display - UI - View

  • class InventoryDisplay: MonoBehaviour

  • class Slot: MonoBehaviour, IPointerClickHandler

Other MonoBehaviour Required Files:

  • class Hazard: MonoBehaviour

Modified, Existing files:

  • GameData: MonoBehaviour

  • PickUp: MonoBehaviour

Fix Unity Errors due to changes in GameData, PlayerController, PickUp classes.

Important: several changes are required to re-configure GameObjects in BeginScene, MiniGameScene, and Asset Prefabs: PickUp.

  • Step 1: BeginScene - GameData issues:

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

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

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

  • Step 2: MiniGameScene - PlayerController issues

    • If necessary: - Reset GroundCheck by selecting the GroundCheck empty gameObject.

    • If necessary, reconfigure PlayerController.cs on the Inspector Select: LayerMask: Set to: Ground

  • Step 3: MiniGame-Prefab Asset: PickUp issues:

  • Edit your PickUp Prefabs

    • Edit the PickUp prefabs, (Unity 2018 + - edits can be done in the directly in prefab editor ) following the details blow.

    • For Prefabs with 'Collectible Tag': make sure the PickUp script component shows no errors. (fix: Remove component, re-add ).

    • And an ItemInstance scriptableObject to the each prefab's PickUp script.

      • Create a scriptableObject from the Gem or Potion class and set all values, sprites.

      • Add the scriptableObject to the PickUp's Item field as shown in images below.

To Configure: Inventory Display: Go to linked page below

InventoryDisplay: UI Prefabs: Slot, Store, BtnAdd-Item, Optional: Add Animation

Acknowledgements: Inventory Systems: Reference Tutorials

Below are links to several tutorials about custom Unity Inventory-Systems using ScriptableObjects which were integrated and customized for creation of the Inventory System in this course..

The above Unity package includes: the ScriptableObject Factory Package:

Manual file modification required to integrate Inventory with MiniGame Logic - Update code to integrate having Pickup items added to inventory - will need to be reconfigured

In the MiniGame, Select the Player gameObject, Update the PlayerController script . Compile. Fix any errors. (fix: Remove component, re-add)

This inventory system is based on this blog series by Michael Palmos.

- by Jamie at MVCode Clubs

Download Link: Inventory System - v2 - Unity Package updated 4/11/2020
ScriptableObject Factory - box.com
PlayerController.cs
Pickup Prefabs
using linked code
InventoryDisplay, Slot UI
Michael Palmos: Inventory System - Blog
RPG Inventory-System:
Video Overview of Inventory System
Inventory System Package Items To Import