static public void SetActive(GameObject go, bool state)
{
if (go == null)
{
return;
}
if (go.activeSelf != state)
{
go.SetActive(state);
}
}
项目中类似上面增加了新的SetActive方法,一直没仔细想原因,今天看到一篇文章,恍然大悟。
参看文章:
https://gameinstitute.qq.com/community/detail/117676
总结:
unity本身gameobject.SetActive(true),会触发MonoBehaviour.OnEnable()
gameobject.SetActive(false),会触发MonoBehaviour.OnDisable()
如果项目框架中希望自己控制脚本的生命周期的话,则重写SetActive或者新建统一使用的Api比较好