A base class for creating singleton MonoBehaviours that can be instantiated in code or as part of the scene.
If unspecified, SingletonMonoBehaviours are destroyed when a scene change occurs.
Use the SingletonMonoBehaviour.InstantiationSettings attribute to change the DontDestroyOnLoad behaviour.
Consider setting [DefaultExecutionOrder(-1)] on the derived class.