(一)简介
(1)所有的生命周期函数都派生自MonoBehaviour,需要继承 MonoBehaviour 类才能使用;
(2)生命周期函数全部都是由系统定义好的,系统会自动调用,且调用顺序和我们在代码里面的书写顺序无关;
(二)执行顺序
编辑器 ⟶ 初始化 ⟶ 物理系统 ⟶ 输入事件 ⟶ 游戏逻辑 ⟶ 场景渲染 ⟶ GUI渲染
⟶ 物体状态(激活/禁用)⟶ 物体销毁 ⟶ 应用结束
(三)常用的生命周期函数
函数 | |
---|---|
Reset() |
(1)用户点击检视面板的Reset按钮或者首次添加该组件时被调用; (2)常用于给组件恢复默认值; (3)只在编辑模式下被调用; |
Awake() |
(1)Awake用于在游戏开始之前初始化变量或设置游戏状态; (2)Awake像构造函数一样只被调用一次; |
OnEnable() |
(1)仅在对象处于激活状态时调用; (2)常用于给组件恢复默认值; (3)OnEnable不能用于协同程序; |
Start() | |
FixedUpdate() | 在处理Rigidbody时,应该使用FixedUpdate而不是Update |
OnTriggerXXX() |
(1)进入触发器:OnTriggerEnter(Collider other); (2)逗留触发器:OnTriggerStay(Collider other); (3)离开触发器:OnTriggerExit(Collider other); |
OnCollisionXXX() |
(1)碰撞开始:OnCollisionEnter(Collision collisionInfo); (2)碰撞逗留:OnCollisionStay(Collision collisionInfo); (3)碰撞结束:OnCollisionExit(Collision collisionInfo); |
OnMouseXXX() |
(1)鼠标进入:OnMouseEnter(); (2)鼠标经过:OnMouseOver(); (3)鼠标按下:OnMouseDown(); (4)鼠标拖拽:OnMouseDrag(); (5)鼠标擡起:OnMouseUp(); (6)鼠标退出:OnMouseExit(); |
Update() | 循环调用,每帧调用一次; |
LateUpdate() | 当物体在Update里移动时,跟随物体的相机可以在LateUpdate里实现; |
OnGUI() | 用于呈现和处理GUI事件; |
OnDisabled() | 当对象变为不可用或非激活状态时此函数被调用; |
OnDestroy() |