**

Unity 生命周期函数

**

1)Reset()
调用情况:此函数只能在程序不运行时调用,
调用时间:当脚本第一次挂载到对象身上,或使用Reset命令调用。
调用次数:此函数只会调用一次;作用:初始化脚本的各个属性

2)Awake()
调用情况:1.在调用场景时,
2.GameObject从未激活状态变为激活状态
3.在初始化使用Instantiate创建GameObject之后
调用时间:在脚本实例的生存期间内
调用次数:仅调用一次;作用:Awake代替构造函数来进行初始化

3)OnEnable()
调用情况:依附的GameObject对象每次被激活时调用。
调用时间、次数、作用:每次GameObject对象或脚本被激活时调用一次;重复赋值;变为初始状态

4)Start()
调用情况:进行第一帧跟新之前才会执行,只有在GameObject被激活后才会被调用
在Awake之后Update之前执行,方便控制逻辑的先后调用顺序

5)Fixed Update()
主要用于物理更新,每个固定时间间隔执行。时间设置在Project setting—>Time—>Fixed Timestep中设置。

6)Update()
主要用于处理游戏核心逻辑更新
实时更新数据,接受输入数据,每帧调用,每秒60次左右。

7)Late Update()
一般用于处理摄像机位置更新相关的内容,Update和Late Update之间,Unity进行了一些处理,对动画相关的更新,影响渲染的结果,如果在Update中更新摄像机,即摄像机位置变化后再更新动画。可能会出现渲染的错误,其运行帧率与Update相同。

8)OnDisable()
当对象被禁用时调用,脚本被禁用时,游戏对象被销毁时调用,
作用:对于一些状态的重置,资源回收与清理

9)OnApplicationQuit()
在程序退出之前所有游戏对象都会调用这个函数
在编辑器中用户终止播放模式时调用
在网页视图关闭时
满足以上情况时调用一次,用于处理游戏退出后的一些逻辑

10)OnDestroy
当物体被销毁时调用,对象存在的最后一帧更新完之后的所有Update函数执行完之后执行。
用于销毁一些游戏物体
Destroy(GameObject,time)

配图:

Ioc Unity RegisterType 生命周期 unity生命周期函数_unity