using UnityEngine; public class SingletonMonoBehaviour : MonoBehaviour where T : SingletonMonoBehaviour { static public T Instance { get; private set; } void Awake() { if (Instance == null) { Instance = (T)this; OnAwake(); } else { //Debug.Log("1개이상의 싱글턴이 존재합니다" + gameObject.name); //Debug.Log("같은 함수가 들어간 싱글턴을 제거해 주세요"); Destroy(gameObject); } } void Start() { if (Instance == (T)this) { OnStart(); } } virtual protected void OnAwake() { } virtual protected void OnStart() { } }