Skip to main content

Singleton

GlacierSingleton

This is for basic C# classes. This is not for MonoBehaviours or ScriptableObjects.

namespace Sample001 {
    public class SingletonSample : GlacierSingleton<SingletonSample> {
        protected override void Initialize() {
	        GlacierLog.Log("SingletonSample.Initialize() gets called.");
		}

		public void Test() {
			GlacierLog.Log("SingletonSample working.");
		}
	}
}

SingletonSample.Instance.Test();

GlacierMonoSingleton

This is for MonoBehaviours. No need to call CreateInstanceCreateInstance() since Unity handles the instantiation.

DO NOT implement Awake() because it will override the logic of handling the singleton instance.

namespace Sample001 {
    public class MonoSingletonSample : MonoSingleton<MonoSingletonSample> {
        protected override void Initialize() {
	        GlacierLog.Log("MonoSingletonSample.Initialize() gets called.");
		}

		public void Test() {
			GlacierLog.Log("MonoSingletonSample working.");
		}
	}
}

SingletonSample.Instance.Test();