Unity生命周期函数
Contents
生命周期函数

游戏的本质
游戏的本质就是一个死循环,每一次循环处理游戏逻辑就会更新一次画面,之所以能看到画面在动是因为切换画面的速度到达一定时人眼就认为画面是流畅的
一帧就是执行一次循环
Unity底层已经帮助我们做好了死循环
生命周期函数的概念
- 所有继承
Mono的脚本 最终都会挂载到GameObject游戏对象上 - 生命周期函数 就是该脚本对象依附的
GameObject对象从出生到消亡整个生命周期中通过反射自动调用的特殊函数 - Unity帮助我们记录了一个
GameObject对象依附了哪些脚本 会自动得到这些对象 通过反射执行一些固定名字的函数 - 生命周期函数支持继承多态
- 物体在非激活状态时不会调用生命周期函数,在激活状态时 这个脚本不管是否激活 都会调用awake函数
- 生命周期函数 不是基类
Mono中的成员 是Unity利用反射调用的 - Unity帮我们记录了场景上所有的
GameObject对象 以及关联的脚本对象 在游戏的特定时机 通过函数名反射得到脚本对象中对应的生命周期函数来执行
生命周期函数
- 生命周期函数的访问修饰符一般为
private和protected - 避免在继承自Mono的类中使用构造函数(在初始化时构造函数会被unity执行多次)
Awake:当对象(自己这个类对象)被创建时 才会调用该生命周期函数(类似构造函数)OnEnable:当当依附的对象激活时调用(物体被激活时 会激活脚本 本质上是脚本激活时调用)Start:第一帧更新前调用FixedUpdate:固定时间调用 默认0.02秒 可在Project Setting中的time中设置 主要用来处理物理相关的更新Update:每一帧调用一次LateUpdate:每帧调用一次在update之后执行 通常用于处理 摄像机位置更新相关内容(Update和LateUpdate之间 Unity进行了一些处理 处理我们动画相关更新)OnDisable:当依附的对象取消激活时调用和OnEnable是对应关系OnDestroy:当对象销毁时调用(只会调用一次)销毁时也会调用OnDisable