Unity C 中的簡單 Singleton MonoBehaviour

在此示例中,類的私有靜態例項在其開頭宣告。

靜態欄位的值在例項之間共享,因此如果建立了此類的新例項,則 if 將找到對第一個 Singleton 物件的引用,從而銷燬新例項(或其遊戲物件)。

using UnityEngine;
        
public class SingletonExample : MonoBehaviour {

    private static SingletonExample _instance;
    
    void Awake(){

        if (_instance == null){

            _instance = this;
            DontDestroyOnLoad(this.gameObject);
    
            //Rest of your Awake code
    
        } else {
            Destroy(this);
        }
    }

    //Rest of your class code

}