Practical ScriptableObjects: Intro📆 Created on July 9, 2023.
Scriptable Objects. If you've done any work in Unity you've likely used or at least heard of Scriptable Objects. They're like MonoBehaviours except you don't attach them to your Game Objects, instead you use them to store data and functions that you can reference at runtime within your game.
For a really great talk on Scriptable Objects and how to use them in your game architecture, check out Game Architecture with Scriptable Objects by Ryan Hipple at Unite Austin 2017. It's packed with information including an excellent breakdown of just what Scriptable Objects are and some high-level examples of how to use them.
Unfortunately there aren't a lot of resources out there that offer examples showing real-world use cases of Scriptable Objects with full source code. A lot of creators will show you how they solved a specific problem with Scriptable Objects, like an inventory system or adding skills/quests to a game but if you want to take full advantage of them in your game you're really left to your own devices.
Which is why I wanted to cover how Scriptable Objects can really enhance the more foundational systems within your game. Things like Global Events, Persistant Variables, Game or Object Specific Configuration, and more.
So this is the start of a series of posts covering what I think are the real strengths of Scriptable Objects in Unity. I'll keep this post updated with links to new posts as I write them.