生命周期流程如下
本篇主要讲的是在比较靠前的awake和start阶段,因为这两个阶段效果类似,都只会执行一次,但是具有触发条件.
awake、enable、start依照次顺序执行,awake会在一开始的时候就会执行,但start则是在被激活之后才会调用,因此在编写代码的时候在给脚本挂载的物体做初始化,就用awake,用于挂载组件或者处理引用关系,start是物体“可见”之后才会被调用即setActive("true")之后才会调用(当然一开始就是非隐藏的话会按照顺序执行),面试的时候有问过一个如果物体被遮挡了那么还会执行对应的脚本嘛?(答案是会执行,毕竟遮蔽不是不激活)
由此在用处上面的话总结:
awake:用于初始挂载在对象上的组件或者关系,不论是否激活一开始都会调用
start:用于初始化对象上的数据,只会在物体被激活后按顺序调用,也只是全程调用一次
两者都只会调用一次
说个题外话,在开发的时候尽可能以少量的方法组成不同的功能,或者说相同类型对象源于同一个初始,这样会提升开发效率,如果对象要不同那只做继承就行