我需要在Unity中缓存对另一个脚本的引用。
我没搞清楚为什么在下面的代码中,在Start()中缓存引用不起作用(我得到了NullReferenceException),而在Awake()中缓存引用却起作用。
据我了解,Start()被称为AFTER Awake()。但是从我看到Start()被调用时的对象来看,AnotherScript还不存在,而当Awake()被调用时它退出了。
我想念什么?
./configure --enable...
adasdad
答案 0 :(得分:0)
显然,AnotherScript
游戏对象在您初次寻找时不存在。或已关闭。或者只是其AnotherScript
组件尚未附加。如果您动态创建它,则可能会发生。
尝试调查实际的时间轴:在此脚本和Debug.Log("i am ready " + name, gameObject);
的{{1}}和Awake()
方法中放入一些Start()
。
您还可以在编辑>项目设置>脚本执行顺序中明确地重新排列脚本的执行顺序,前提是您确定脚本在创建/设置的第三个脚本之前开始AnotherScript
开始了。