using UnityEngine; public abstract class MonoSingleton : MonoBehaviour where T : MonoBehaviour { public bool global = true; static T instance; protected bool _isInit = false; public static T Instance { get { if (instance == null) { instance =(T)FindObjectOfType(); } return instance; } } void Start() { if (global) DontDestroyOnLoad(this.gameObject); //Debug.Log(this.gameObject.name); this.OnStart(); } protected virtual void OnStart() { } }