using System; using UnityEngine; namespace OHM.UnityToolkit { public class UniqueInstance : MonoBehaviour { private static UniqueInstance _instance; public static T Instance { get { return (_instance is T typed) ? typed : default(T); } } public void Awake() { if (_instance != null) { Debug.LogWarning("There is more than one _instance of type " + typeof(T)); } else { _instance = this; } AwakeInstance(); } protected virtual void AwakeInstance() { } } }