Book Image

Learning Design Patterns with Unity

By : Harrison Ferrone
Book Image

Learning Design Patterns with Unity

By: Harrison Ferrone

Overview of this book

Struggling to write maintainable and clean code for your Unity games? Look no further! Learning Design Patterns with Unity empowers you to harness the fullest potential of popular design patterns while building exciting Unity projects. Through hands-on game development, you'll master creational patterns like Prototype to efficiently spawn enemies and delve into behavioral patterns like Observer to create reactive game mechanics. As you progress, you'll also identify the negative impacts of bad architectural decisions and understand how to overcome them with simple but effective practices. By the end of this Unity 2023 book, the way you develop Unity games will change. You'll emerge not just as a more skilled Unity developer, but as a well-rounded software engineer equipped with industry-leading design patterns.
Table of Contents (23 chapters)
21
Other Books You May Enjoy
22
Index

Creating singletons as ScriptableObjects

Imagine you and your design team need to create, configure, and test singleton classes in the Unity Editor. Using ScriptableObjects as data containers not only frees you from attaching your scripts to GameObjects but also gives you the freedom to create singleton assets from the Asset menu. Both added features make scriptable objects a good fit to address testing concerns with the Singleton pattern, and it is much easier for non-programming members of your team to work with them.

Your last task in this chapter is to create a generic singleton as a ScriptableObject asset in the project. In the Scripts folder, create a new C# script, name it ScriptableSingleton, and update its code to match the following code. This script creates a generic ScriptableObject class that we can use to fetch a unique instance from the project resources when queried:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 1
public...