Basic design patterns for larger code projects
Even though our prototypes contain just a handful of scripts, your games will realistically contain many different scripts that will need to interact with each other. Unity's tag system is a great way to create cross-object communication quickly, but for a more reliable and organized approach, there are several design patterns that you can follow to keep your game functional and dynamic. In this section, we'll briefly touch upon the driving philosophies and functions behind three main design patterns and offer implementation ideas to try each of them out in your game.
The Singleton pattern
The Singleton pattern relies on an object with exactly one instance that can usually be accessed from anywhere. The Singleton implementation is equally easy, powerful, and dangerous, and is usually executed with a self-creating accessor function like the following one:
public static Singleton getInstance() { if(instance == null) { instance = CreateInstance...