如果实现不loadScene,重置一个场景的状态

我需要重置一下整个场景的状态,但我不想重新loadScene,所以我在所有组件的onEnable,onDisable里面做了状态初始化和清理工作。如何触发所有组件的enable改变?不能用父节点node.active 来控制,不知道这里是不是有bug,如果先设置node.active = false, 然后在所有子组件的onDisable里面做清理,比如子节点node.active = false, 然后再将父节点设回来node.active=true,子节点的显示状态在界面上根本不会生效。

父节点的 active 只会影响自身也 active 的子节点上的自身也 enabled 的组件

我的意思是 节点a 里面 有个 b, a.active = fasel, 然后在a的组件的onDisable里面,设置 b.active = false, 然后再将a设置回来 a.active = true; 这时候 b仍然显示,这正常吗?

哦, 你是说这个,这是 bug,不过 1.5 应该修好了,你可以试试 1.5
1.5 还是不行的话麻烦提交个 demo

可以不重新生成原生工程,只升级引擎吗? 我的是从 1.3.2 升级 到 1.4.2 的,因为原生工程上面改了不少多东西,没有重新生成工程,一直提示我的版本不匹配。如果我再将1.4.2 升至 1.5 不改原生工程可以么? 好怕怕会出问题。。。

不行,原生工程要升级的

升级完,如果没有改动原生代码,可以不发原生包,发热更新么?

你怎么知道原生代码有没有改动?引擎一般都会有改动的。

主要是现在还不想发原生包,产品迭代太快,没时间搞,没精力去测试,只想先修复问题,新版本js能兼容老版本引擎就行。 这个bug什么方法在老版本避免掉吗?似乎只能在父节点active = false之前设置才会有效

你先用新版本确认下是否还会有这个 bug。如果要在老版本避免很难,因为这个 bug 修复起来改动很大。