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

}