CS2335
Master_v2
Master_v2
  • Introduction
  • Introduction
    • Introduction
      • Design
      • Game Design
    • Unity - Download
    • Visual Studio - IDE
    • Hero's Journey
  • Unity Basics
    • Unity Editor Windows
    • MonoBehavior - Base-Class
    • Unity Engine - Event Functions
  • Getting Started
    • UI-Elements
    • Animator Controller
      • Animation Steps
    • PlayerController Flow Chart
    • PlayerController Code
      • PlayerController - V1 - S20
      • PlayerController V2 S20
      • PlayerController V3 S20
  • Project 1 - Simple Game
    • Overview
    • Project 1 - Get Started
      • UML Class Diagram
    • Player GameObject
      • PlayerController.cs V2
      • PlayerController.cs V3
    • Create 2D Sprite Prefab: Rock
    • Sorting Layers
  • Project1 Code
    • PickUp PreFabs
    • Player GameObject
    • PlayerController - jump
    • GameData Version1
    • PlayerStats Version1
    • MiniGameManager
      • Logic Diagram
    • Simple Spawner
    • Utility Class
  • Project1 Enhancements
    • PickUp - SelfDestruct
    • Spawn from List of Prefabs
  • Project 2 - StateManager
    • Project 2 - Learning Objectives
    • Project 2 - Starter Assets
    • Project 2
      • State Machine Framework
        • Singleton Pattern
      • StateManager - Singleton Design Pattern
      • IStateBase, BeginState
      • Project 2 -Steps: Create new Scene and State
      • Project 2 - List of Steps
        • Project 2 - Starter Code
  • Project 2 -Dialog
    • Hide_Show_Panel Script
    • Configure TitlePanel, DecisionPanel
    • Simple Dialog Prefab
    • Conversation Scriptable Objects
    • DialogManager_ConvList
    • Image Transitions for Buttons
  • UI Components
    • Finding Game Objects
    • Game Objects: UI vs. 2D Sprite
    • UI Elements
      • Canvas: Screen-Space Render-Mode
      • UI-Buttons To Change Scene
      • Text Input
  • Project2 Resources
    • Visual Novel in Unity-Links
    • Scriptable Object Factory
      • ScriptableObjects
    • Dialog Prefab Packages
  • Project 3 - Overview
    • Branching Story Structures
    • Dictionary Data-Structure
      • Unity PlayerPrefs Dictionary
    • Dictionary: User-Choice Data
      • User-Choices - Example
        • Dictionary Value to Disable Options
    • Simplified Mini-Game
      • PlayerController_v2 Mods
        • PlayerController_v2_final
      • MiniGameManager_v2
  • Proj3: Inventory System
    • Inventory-System
      • 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
  • Proj3: Custom UnityEvents
    • Event Publishing Patterns
    • Custom Event Messaging
  • Proj3: Mini-Game
    • MiniGame-Overview-Proj3
    • LevelManager
      • LevelManager Logic Diagram
      • LevelManager FSM
      • LoadLevel, StartLevel Logic
      • Code Framework
    • Timer
  • Project 3 - Code Mods
    • Project 3 - Steps
    • Project 3 - 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
      • Adding Audio
      • Screen Fading and Reloading
      • ScriptableObjects
      • Disable Debug Logging
      • Events and Actions
      • Saving Data - Serialization
      • Parallax Scrolling
      • Change Sprites
  • C# Language
    • C# Language
      • Variables
      • Enum
      • Encapsulation
        • C# Properties
        • Access Modifiers
      • Inheritance
      • Polymorphism
      • Interface
      • Switch-Case
      • List< T >
      • Queue< T >
      • Dictionary
      • Foreach
      • Static
      • Ternary Operator: ?
      • this
      • Delegates
    • Diagrams
      • State Machine Framework
      • UML Class Diagrams
      • Level Manager Logic Diagram
      • Flow-Chart: NumberGame
      • FSM: NumberGame
    • 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. Proj3: Inventory System

Inventory-System

PreviousMiniGameManager_v2NextInstall and Configure

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