場景加載完 onLoad 未执行?

我在加載場景后,發現 load沒有執行,雖然不太確定是不是執行順序問題,但肯定的是并不是所有場景中所有脚本執行完load方劑,再執行其他組件的方法

是的,组件的onLoad是在组件首次active时执行的。。。。。。

你的断点变半透明了,半透明断点说明你的脚本没正确加载,或者别的什么原因。总之不是没执行到。

這樣修改就行,爲什麽

問下 onload 是在第一次active 才執行的? 如果active == false不執行?

不是斷電的事情 ,斷點哪裏已經執行過了

大神在綫快回答

是的。。。。。。。。。。。。。。。。。。。。

active == false 不會執行onload? 爲什麽這樣設定

既然要执行脚本为什么不激活

激活了啊

因为没激活,就没 load

沒激活 不是不執行onEnable 嗎,按照設計 不i管active 等不等於fals ,都應該執行onload,和u3d 封裝有點衝突,onload本來就是賦值的地方,初始化ui的 ,就算active 是false 也必須執行onload方法

Creator 没必要也不可能完全和 Unity 一样啊…… 又不是像某像素级照抄的 Copy2Engine。

这么说的设计出处在哪?有依据吗?

现在一样可以赋值啊……

如果我加載場景,如果場景中的對象a 的activ = false 的話 onload 不會執行?這樣理解對嗎 ,

這樣設計不好 就像上面那個圖裏,必須在fresh()方法裏重新賦值,要不然就會出錯,你能解決上述問題不。。。

没那么复杂,官方这种思路没什么问题。

在你的fresh方法最前面加上 this.node.active = true; 就可以了,我就不相信你刷新不是为了显示

是的

我看不懂你上面的方法有什么问题。


其实就算 active = false 时也执行 onLoad,那节点还未加入场景前是否要 onLoad 呢? Cocos 和 Unity 不同的地方是节点创建出来默认都不在场景中的。这时是否要 onLoad?如果这时不 onLoad,那还是会遇到 onLoad 没调用的问题。如果这时要 onLoad,那就会遇到 onLoad 时节点不在场景中(无父子节点)的问题。

就是剛進入場景, 外部脚本 通過gettcomponet 獲取這個脚本

,然後調用freresh 方法會出錯 子節點找不到