Summary
If this was your first foray into design patterns, congrats and welcome to the club! We’ve covered quite a bit in this chapter, from a super-vanilla singleton hardcoded into a single class all the way to lazy instantiation, generics, and thread safety – not to mention using ScriptableObject
assets as containers for design pattern code.
Keep in mind that your singleton classes are most useful when you only want a single class instance, a global point of access, and persistence throughout the Unity game lifecycle. You have the choice of lazily instantiating your singleton objects, which helps with accessing information your project may only have after compiling (not to mention the singleton itself won’t be created until it’s needed). You can also go for a generic solution, which can be a subclass or even a ScriptableObject
!
However, it’s important to remember that any globally accessible objects can have adverse effects if you’...