Learn how to include an inventory system for any of your projects that require items to be picked up, dropped, moved and equipped.
This highly acclaimed series was over 200% funded on Kickstarter, and is designed for intermediate users of Unity. We recommend you take at least the first half of our Complete Unity Developer 2D or 3D, or equivalent, as a prerequisite.
This course is the second in our RPG series, you don't need to have completed the first part of the RPG Series (the RPG Core Combat course) but it will give you an advantage if you already have.
Learn how to include an inventory system for any of your projects that require items to be picked up, dropped, moved and equipped.
This highly acclaimed series was over 200% funded on Kickstarter, and is designed for intermediate users of Unity. We recommend you take at least the first half of our Complete Unity Developer 2D or 3D, or equivalent, as a prerequisite.
This course is the second in our RPG series, you don't need to have completed the first part of the RPG Series (the RPG Core Combat course) but it will give you an advantage if you already have.
By enrolling in this course you will have access to the completed Inventory system as an asset pack which you can import into your existing project. We will also take you step-by-step through the process of using, modifying, improving and understanding the code that drives the asset pack.
Please note, this course follows a different format. Rather than building the inventory system from scratch, line-by-line, we will provide you with our code and then explain how the code works so that you understand it fully. This is an approach that works well for folks who are already competent with Unity and C# and wanting to "get to the answer" more quickly.
Although this course is part of our RPG series, you can use the inventory system for any of your projects that require items to be picked up, dropped, moved and equipped.
In this course we will cover the following systems:
The click-to-pickup and the runover-to-pickup systems
The dropping system
The tooltip overlay system
The stackable item system
The equipping system
The saving and loading system
The course covers many advanced programming principles and goes into great depth to discuss good code architecture practices. We cover Interfaces, Virtual Methods, the debugging tool and many more things that aren't covered in our beginner courses.
You will have access to a course forum where you can discuss topics on a course-wide basis, or down to the individual video. Get plugged into our communities of amazing developers on Facebook (nearly 20k), in our own TA-curated Community (17k views/day), and our student chat group (10k live at any one time). Check out our reviews to see how people love this feature.
Building an RPG is an amazing way to level-up your game development skills, so why not join us and get started improving your game development right now?
In this video (objectives)…
Introducing the course and how it will be taught.
We are providing you the entire project as an asset pack and will integrate the inventory into our RPG Core Combat project.
This is an intermediate course so you should be comfortable with Unity and C#.
After watching (learning outcomes)…
You'll be clear on how we are teaching this course and what it covers.
In this video (objectives)…
Sam takes us over the architecture of this RPG and how it is split between courses in the series.
In this video (objectives)…
Rick explains which version of Unity will be used in this course and why this decision is important.
In this video (objectives)…
· Overview of the finished project, with the inventory system integrated with our RPG Core Combat.
After watching (learning outcomes)…
Clear on where we will end up by the end of the course.
In this video (objectives)…
How to follow along with this course.
Brief outline of the systems we'll be covering.
After watching (learning outcomes)…
Understand the way we'll be delivering this course.
In this video (objectives)…
How to get the github repo for our project and use that to follow along.
How to get the asset packs for this project and use those to follow along.
After watching (learning outcomes)…
How to get access to our code and how to follow along with the course
In this video (objectives)…
What scripts and systems are we bringing starting with.
After watching (learning outcomes)…
Understanding the non-inventory aspects of our project
In this video (objectives)…
Outline the license agreements for the students of this course
Shout out to Synty Studios and Clayman Studio for providing assets for this course.
License agreement for the GameDev.tv asset pack / code.
After watching (learning outcomes)…
Understand the asset pack license agreements for this course.
In this video (objectives)…
After watching (learning outcomes)…
In this video (objectives)…
Adding new UI elements into our inventory layout.
Experiment with slicing images to ensure the scaling happens without stretching.
After watching (learning outcomes)…
Understand how to slice UI elements so that scaling doesn't result in stretching.
In this video (objectives)…
Adding and using scroll view assets to display items.
Understanding the scroll bar within scroll view.
After watching (learning outcomes)…
Understanding how to layout the scroll view asset for your inventory.
In this video (objectives)…
How to add and alter the grid layout group.Understanding the scroll bar within scroll view.
After watching (learning outcomes)…
Understand how we use the grid layout group to dynamically display our UI items.
In this video (objectives)…
Bring in the new commit from our project
Work through the drag & drop scripts to understand how it all connects.
After watching (learning outcomes)…
Understand how the drag & drop system works.
In this video (objectives)…
What are interfaces and why would we use them
Compare an approach where we do and don't use interfaces
After watching (learning outcomes)…
Overview of what interfaces are and how to use them
In this video (objectives)…
Digging further into our drag & drop scripts to understand how to use and modify the code
After watching (learning outcomes)…
Deeper understanding of the drag & drop system
In this video (objectives)…
Use print statements to understand where the drag & drop scripts are interacting and what is calling what
After watching (learning outcomes)…
Deeper understanding of our drag & drop code
In this video (objectives)…
Understand the role of the inventory script.
Alter the number of inventory slots available for the player
After watching (learning outcomes)…
Capable of altering the number of inventory slots.
In this video (objectives)…
How to create a new scriptable object for our inventory.
Understand how the resources folder allows using resources at runtime.
After watching (learning outcomes)…
Comfortable adding new inventory items as scriptable objects.
In this video (objectives)…
Review and understand the Inventory.cs script.
Explore the methods which are driving our inventory script.
After watching (learning outcomes)…
Understand how the inventory.cs script drives our inventory.
In this video (objectives)…
Understand the changes to return type in InventorySlotUI.cs.
Explore how InventorySlotUI.cs is interfacing with other scripts.
After watching (learning outcomes)…
Understand how InventorySlotUI.cs has been updated and the implications.
In this video (objectives)…
Set up and start using the debugger tool in Visual Studio Code.
How to read the pieces of information that the debugger tool provides us.
After watching (learning outcomes)…
Be capable of using the debugger tool to find issues and understand our code.
In this video (objectives)…
Discussion of why we have two inventory directories and how this makes things easier for your future projects.
After watching (learning outcomes)…
Understand the two inventory directories.
In this video (objectives)…
Looking at where the Item Id is used.
Using the item ID to display the new scriptable object inventory item we created a few videos ago.
After watching (learning outcomes)…
Able to use Item IDs powerfully in your inventory system.
In this video (objectives)…
Explanation of redraw and how it works.
How Redraw() relates to events.
UI as a slave to the data store.
After watching (learning outcomes)…
Understand how Redraw() works and why it is set up the way it is.
In this video (objectives)…
Using our START HERE commit, examine the key components of the saving system.
Understand how unique IDs are used to store and identify entities.
Examine how entities are loaded.
After watching (learning outcomes)…
Understand how the saving and loading system works.
In this video (objectives)…
Focus on how the inventory system can save its state.
Explain in your own words how the saving system does what it does.
After watching (learning outcomes)…
Understand how the saving system works with the inventory system.
In this video (objectives)…
Using the Pickup.cs script.
Using the PickupSpawner.cs script.
Relationship between Pickup Spawner, Inventory Item and Pickup item.
After watching (learning outcomes)…
Understand how to use the Pickup system.
In this video (objectives)…
Get hold of an instance of inventory item and call SpawnPickup().
Spawn a new pickup in the world.
After watching (learning outcomes)…
Use SpawnPickup() method to spawn a new pickup in the world.
In this video (objectives)…
Thorough examination of the logic in the Pickup Spawner class.
Identify where spawned items are placed in the hierarchy.
After watching (learning outcomes)…
Understand the pickup spawner.
In this video (objectives)…
Modify our pickup script to make run-over functionality.
Understand the pickup script well enough to be able to use the clickable and run-over functionality together.
After watching (learning outcomes)…
Deep understanding of the pickup script and how to modify it to make a run-over script.
In this video (objectives)…
Review the code for the drop architecture, including InventoryDropTarget.cs.
Identify in the code where we are saying where the item will drop.
After watching (learning outcomes)…
Review the drop code to understand how it is architected.
In this video (objectives)…
Code review for ItemDropper.cs.
Understand the drop items list and how inventory itesm are tracked.
Using a virtual protected method.
How the drop system communicates with the save system.
After watching (learning outcomes)…
Understand ItemDropper.cs and how it works.
In this video (objectives)…
Dig in to InventoryDropTarget.cs script to understand it.
After watching (learning outcomes)…
Understand how we're dropping items which have been dragged.
In this video (objectives)…
Protected compared to private and public for methods.
Virtual as it relates to what can change the details of the method.
After watching (learning outcomes)…
Overview to understand virtual methods.
In this video (objectives)…
Overview of the prefabs used to generate tooltips.
Where the title and description are pulled from.
After watching (learning outcomes)…
In this video (objectives)…
Review of content size fitter and how it makes dynamic sizing.
Vertical layout group.
Spawning a tooltip in the middle of the screen.
After watching (learning outcomes)…
Understanding how the tooltips prefab works its magic.
In this video (objectives)…
What do we need to know about the tooltips.
Looking at how the tooltip system knows if there is an item or not in a slot.
After watching (learning outcomes)…
Understanding ItemTooltipSpawner.cs
In this video (objectives)…
What is going to change in our code as we add the ability to stack items.
How do we fix what gets broken in Inventory.cs.
After watching (learning outcomes)…
Overview of how our items need to change in order to be stackable.
In this video (objectives)…
Store number of items in the Inventory class.
Propagate necessary changes from there.
After watching (learning outcomes)…
Map out a large refactor using compiler errors.
In this video (objectives)…
Increment a slots number when Adding.
Decrement when Removing.
Add number to pickups.
After watching (learning outcomes)…
In this video (objectives)…
Augment the drop system to save stacked drops.
After watching (learning outcomes)…
In this video (objectives)…
Save the stacked number in Inventory.cs
After watching (learning outcomes)…
In this video (objectives)…
What is the design approach we are following.
What does it mean to be adding inventory items to equipment slots.
After watching (learning outcomes)…
Overview of the equipment systems.
In this video (objectives)…
Create an Equipment UI layout.
After watching (learning outcomes)…
In this video (objectives)…
Implement an IDragContainer
After watching (learning outcomes)…
In this video (objectives)…
Create a backend store for UI state.
After watching (learning outcomes)…
In this video (objectives)…
Save the contents of a dictionary using our Saving library.
After watching (learning outcomes)…
In this video (objectives)…
Outline the general architecture of store and UI.
Explain how to create arrays of structs.
After watching (learning outcomes)…
In this video (objectives)…
Understand how virtual methods are defined.
Find the call sites of a given method.
After watching (learning outcomes)…
In this video (objectives)…
Let's download the final asset pack and bring it in to your existing project.
After watching (learning outcomes)…
Overview of integrating the inventory asset pack into your project and what we'll be modifying.
In this video (objectives)…
Implementing IRaycastable
After watching (learning outcomes)…
In this video (objectives)…
Replace sprites on an existing UI.
After watching (learning outcomes)…
In this video (objectives)…
Explain one technique for preventing input while dragging.
After watching (learning outcomes)…
In this video (objectives)…
Subscribe to an Action event dragging.
Changing the parent of a Scriptable Object.
After watching (learning outcomes)…
In this video (objectives)…
Implement IModifierProvider.
After watching (learning outcomes)…
In this video (objectives)…
Override a virtual method.
After watching (learning outcomes)…
In this video (objectives)…
Design the structure for a hierarchical Scriptable Object.
After watching (learning outcomes)…
In this video (objectives)…
Sam takes us over fixing an issue in the saving system.
In this video (objectives)…
Sam shows us how to fix a bug Items being dropped in all scenes
Wrap up and challenge for future use of this project.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.