对start回调的调用时机有点疑惑,本以为是工程内所有脚本的onLoad()完成之后,才开始调用start的。
结果今天发现在start回调内获取其它脚本Component的属性值时,发现是undefined,属性值是在creator内设定的。
例如:在脚本A内有个property,在creator内设定它取值1;在脚本B的start回调内获取这个属性值,发现是undefined。
觉得这应该是个问题,有大神帮忙解释下么?多谢了!
对start回调的调用时机有点疑惑,本以为是工程内所有脚本的onLoad()完成之后,才开始调用start的。
结果今天发现在start回调内获取其它脚本Component的属性值时,发现是undefined,属性值是在creator内设定的。
例如:在脚本A内有个property,在creator内设定它取值1;在脚本B的start回调内获取这个属性值,发现是undefined。
觉得这应该是个问题,有大神帮忙解释下么?多谢了!
官方文档说的是组件的enabled状态为true时会调用
但是不知道为啥,我刚刚测试的时候,我修改组件的enabled为true时,start并没有调用,所以要问问官方大神
但是对于你的问题,我觉得应该是引擎先初始化脚本b,再初始化脚本a,所以b脚本里获取a脚本的时候获取不到,你可以试试在a脚本里获取b脚本,当然以上只是胡乱猜测
对不住哈文档写错了,start 只会调用一次。
+1
欧耶欧耶欧耶
这个要告诉knox大神叫他修改一下哦,不然误导我们这种小白
好吧,如果规则是这样的话,也就只好接受了。
不过我感觉这样的话,start回调的功能弱化了不少。如果能在所有脚本onLoad之后才开始调用start的话,start会更有用些。
感谢各位的耐心解答!
可以弄个简单的重现项目看看吗?
现在就是这样的。
再试了一下,确实是这样的,之前是我自己搞错了。真是不好意思,再次感谢几位的解答!