关于变量之间的交互的另一种解决办法,与制定脚本执行顺序的优劣问题

来源:2-3 Unity 3D脚本间的执行顺序

超超超超超

2016-09-10 14:45

老师你好!

因为我之前有研究过这个问题,比如说在Test1的Start()方法里面为a赋值,然后在Test2的Start()方法里面取a的值,这样的确会收到脚本执行顺序的影响。

但如果我在Test1的Awake()方法里面为a赋值,然后在Test2的Start()方法里取值,就不会出现这样的问题了。因为Awake()方法的调用总是在Start()方法之前的。

所以我有一个疑问,按照我这样的方法来解决,会比较简单点,但会比老师的方法多一个回调;但如果按照老师的方法来,又觉得比较繁琐。

我想问问,视频里的这种方法在实际应用中是否有必要(就是是否有必要节省这一个回调的资源)。

写回答 关注

3回答

  • 慕神5368544
    2017-05-16 15:35:08

    很有必要。因为Awake和Start是有区别的。有些东西只适合写在Start中而不适合写在Awake中。还有就是灵活性的考虑,写在Awake中就好比开发时用Tag值,是写死的,如果有需求变更,就会破坏开放封闭原则,要去修改原本的代码(工作量可能很大)。而改变脚本执行顺序则没有这个问题。   以上是我的观点。。

  • BingR
    2016-12-30 10:25:15

    还真是,确实简单点也有必要 有助于开发效率 不过老师既然是介绍脚本之间的顺序 所以自然而然的就麻烦点 也是可以的嘛

  • 汉江怪人
    2016-09-25 22:45:23

    我觉得应该是有必要的

Unity 3D游戏开发之脚本系统

一起撸游戏,本Unity基础教程设计开发中常用的方法与技巧

31678 学习 · 25 问题

查看课程

相似问题