Unity脚本周期概览
运行Unity的脚本时,程序将会按照预定的顺序去执行相应的函数,从脚本的初始化到脚本的销毁,构成了脚本的生命周期。Unity脚本的生命周期预览图如下:
生命周期的不同阶段
上图中的多个函数可以根据其执行的时间段分为以下不同阶段。
首场景加载阶段
以下的函数在场景加载时调用,且在加载时只调用一次(OnEnable可能在后续进行多次调用)
- Awake:在Prefab进行实例化后调用,位于Start函数前。(若GameObject在一开始就处于非激活状态时,Awake则不会调用,直到该GameObject被激活)
- OnEnable:该函数在GameObject被激活时被调用。GameObject激活则是发生在一个MonoBehaviour实例被创建的时候。例如场景被加载或者一个拥有该脚本组件的GameObject被实例化时。注意: OnEnable首次调用是紧接Awake之后,对于同一脚本,若有多个物体创建时,是先执行完A物体的Awake->OnEnable函数,然后再执行B物体的Awake->OnEnable函数
- OnLevelWasLoaded:这个函数是用于通知有场景已经加载结束