关于PersistentMonoSingleton的DontDestroyOnLoad没被调用的问题
yyyysh opened this issue · 0 comments
yyyysh commented
图中在其他mono脚本里调用继承了PersistentMonoSingleton的脚本时 该脚本的Awake方法还没执行,这时候从场景上FindObjectOfType得到instance
等到了该脚本Awake方法执行时 mInstance == null 导致DontDestroyOnLoad方法不会被执行 是不是把 DontDestroyOnLoad(transform.gameObject); 这句从if里提出来比较好?
protected virtual void Awake()
{
if (!Application.isPlaying)
{
return;
}
if (mInstance == null)
{
mInstance = this as T;
DontDestroyOnLoad(transform.gameObject);
mEnabled = true;
}
else
{
if (this != mInstance)
{
Destroy(this.gameObject);
}
}
}