Introduction
This component is a generic singleton pattern class. It needs to be inherited from and thus produces only one Instance of this class in the world. This system uses a few Singleton patterns to make linking up and setting up easier.
If you decide to use this class in your own scripts, just be mindful that Start and Awake will not work as expected and you will need to call the following methods
Scripting
//Example
ResourceAndProductionManager : Singleton<ResourceAndProductionManager>
//Here are the methods the Singleton class calls on Start and Awake.
protected virtual void OnAwake() { }
protected virtual void OnStart() { }
//Use them like this
protected override void OnStart() {}
protected override void OnAwake() {}