ScriptableObjects educational resources : E-book and sample project

Hey everyone,

My name’s Thomas. I head up the technical content team in Copenhagen. Our team makes advanced e-books, sample projects, video tutorials, and articles for programmers, including some of those available here, for artists, technical artists, and designers developing games and other applications with Unity. We do that in partnership with our R&D teams, internal and external Unity developers.

This post provides links to our resources for anyone interested in learning about how to use the ScriptableObject class in your Unity projects.

ScriptableObjects are often described as data containers, but they can be used for much more. Creating better code architecture by implementing design patterns, speeding up your Unity workflow, and improving collaboration between programmers and artists. Because it’s part of a GameObject instance, you can use it to create a custom class with its own variables and methods, but with less overhead than a MonoBehaviour. That also means a ScriptableObject does not have a Transform and exists outside of the Scene Hierarchy but lives at the project level as an asset, much like a material or 3D model.

This has multiple implications and one of them is that ScriptableObjects help promote clean coding practices by separating data from logic. This again means it’s easier to make changes without causing unintended side effects. It also means it improves testability and modularity. They’re also super useful when you’re collaborating with non-programmers like artists and designers.


A ScriptableObject instance, serialized as text

If you are new to using Unity you’ll get a good introduction to the ScriptableObject class in the documentation.

Here’s a rundown of our ScriptableObjects collection.

  1. The e-book: Create modular architecture in Unity with ScriptableObjects

    This 75 page guide provides tips from professional developers for deploying ScriptableObjects in production. It also covers different ways how your code base and how you as a team can benefit from using them more far beyond data containers. It includes examples that show how to apply them to specific design patterns, as delegate objects, runtime sets and general tips on how to avoid common pitfalls.

    Unity_create modular architecture with ScriptableObjects

  2. The demo project: Paddle Ball



    Along with the e-book, you can download a demo project from GitHub inspired by classic ball and paddle arcade game mechanics. The demo brings a lot of the theory from our ebook in practice by showing how ScriptableObjects can help you create components that are testable and scalable, while also being designer-friendly in simple game context. Although a game like this could be built with far fewer lines of code, this demo shows ScriptableObjects in action.

  3. The “mini manual” for Paddle Ball

    To help you get the most out of the project we also created six complementary articles that provides you with a full understanding of what’s being shown in the demo:

See the other guides in our advanced programming series

The ScriptableObject e-book is one of three in a series for programmers developing games and apps with Unity. You can find the other two guides in the series here:

  1. Level up your code with game programming patterns
  2. Create a C# style guide: Write cleaner code that scales

You can find all the e-books (and many of our how-to articles) in the Unity best practices hub or via the best practices page in Unity documentation.

Let us know if any of these resources are helpful. We really appreciate it and use your feedback to both update existing but also plan future learning resources.

2 Likes