Unity中脚本按照一定的生命周期执行
1.Awake
最早执行,在GameObejct对象的数据和状态的初始化后执行,只会触发一次。
tips:GameObject实例化到场景中后在激活的状态下才会初始化,如果GameObject从来未激活,它的脚本上的Awake永远不会被调用。
即时触发,GameObject第一次active的时候调用。
2.Start
在脚本第一次调用Update之前调用,只会触发一次。
3.OnEnable
在脚本状态由disabled变为enabled状态是触发一次,Unity内部可能将脚本初始置为diabled,所以如果我们实例化一个激活的GameObject,并且在挂上一个enabled了的脚本后把它加入场景会调用一次OnEnable,并且早于Start。
4.OnDisable
在脚本由enabled状态变为disabled状态的时候会调用。
tips:OnEnable和OnDisable事件的触发是即时的,并且这两个事件是综合考虑GameObject的active状态和脚本的enabled状态的。所以不要在OnEnable里面把脚本设置为disabled同时在OnDisable中把脚本设置为enabled,会导致死循环!!!
5.Update
在每一帧调用,用于实现各种行为逻辑
6.LateUpdate
在每一帧调用,但是是在Update之后触发。常用的一种情况是相机跟随移动角色:角色移动逻辑在Update里面实现,相机跟随逻辑在LateUpdate里面实现。
7.OnDestroy
在组件被销毁时调用,只有GameObject被激活过才会触发。