Unity3D 设计常见误区备忘
尽量使用预制件的方式构造对象而不是自己用AddComponent.因为预制件实例化后立刻可以调用它的所有子级和组件,而用new GameObject构造出的对象 以及用AddComponent添加的组件,需要等下一帧之后才能访问,这就会需要使用协程,然后后续代码必须写入协程之中,甚至使用回调,这就很容易导致分散的流程代码或者callback hell。
Awake应该是在对象的构造函数之中或者之后马上调用的。很多Start里延迟执行的东西可以通过放到Awake里来避免执行过晚造成的对象,组件不存在问题。当然,也可以通过设置里的脚本执行顺序拖放解决。