在学习unity3d的时候碰到这么一个问题,一个管理类,只在场景一被创建,在所有场景切换的时候要保持不变,因为要保存数据,可以添加
DontDestroyOnLoad (transform.gameObject);来使对象不被销毁,但是如果我们从其他场景切换回场景一时就会发现这个管理类又被实例化了一遍,这肯定不是我们希望的。
单例模式:顾名思义就是让场景里指定类只存在一个实例。
我从网上总结了如下方法
在类中声明一个静态变量,用来保存实例;如果该静态变量为null则场景没有该类的实例,则把this赋给该变量
否则就销毁this
class SingletonClass : MonoBehaviour {
public static SingletonClass Instance=null;
void Awake ()
{
if(Instance==null)
{
Instance=this;
DontDestroyOnLoad (transform.gameObject);
}
else
Destroy(transform.gameObject);
}