在游戏开发时有时会将游戏物体激活或者暂停以达到预期效果,但是当临时用GameObject.Find("gameobject").setActive(false)暂停游戏物体后,若在其他地方再想通过GameObject.Find("gameobject").setActive(true)激活游戏物体时会报错,达不到预期效果。
一个比较好的方法是:
另外建立一个全局脚本,在脚本中预获取将要操作的游戏物体,然后再在别的脚本中引用全局脚本中已获取的游戏物体并将其激活或者暂停就能看到预期的效果了
注:当一个游戏对象被激活或者暂停时,其子对象都将激活或者暂停,当一个物体的active状态判定为true时,如果其父物体的active为false,则此物体当前状态依然跟随父物体,为暂停状态,一种好的判定方法为变:gameObject.activeSelf为gameObject.activeInHierarchy,通过获取游戏对象在整个场景中的激活状态就可避免上述不匹配问题。