Unity生命周期是指在Unity引擎中,在游戏物体进行实例化、被删除以及游戏运行时所触发的一些回调函数。
一、Unity生命周期图
以下是Unity生命周期图:
上图中,我们可以看到在Unity运行时所触发的回调函数,每个生命周期函数都会被自动调用,所以在开发过程中,需要我们根据需要在它们中写入相应的代码逻辑。
二、Unity生命周期从上至下
在Unity生命周期中,从上至下,依次对应类的不同阶段:
1.创建时期
这个阶段包括了对象实例化、添加组件等操作。
2.自身Update时期
在这个阶段中,Unity将调用这些函数以实现在游戏运行中物体的各种动态行为。在改变对象的状态时,我们需要在这里添加代码逻辑。
3.其它(可选)的时期
这些函数对于特定的游戏对象可能不会被调用。例如,MouseEnter如果游戏对象不接受鼠标输入,则不会调用。
4.销毁时期
这个时期包括了被删除、对象销毁、组件去除等操作。
三、Unity生命周期函数
以下是Unity常用的生命周期函数:
void Awake() //对象创建完毕后调用的第一个函数
void Start() //第一帧渲染时被调用
void Update() //每一帧都需要被调用
void FixedUpdate() //固定间隔被调用,通常用于物理计算
void LateUpdate() //在所有Update函数执行完后被调用
void OnGUI() //绘制GUI时调用
void OnApplicationQuit() //程序退出时被调用
void OnEnable() //脚本组件变为激活状态时被调用
void OnDisable() //脚本组件变为非激活状态时被调用
void OnDestroy() //对象被销毁时被调用
四、Unity生命周期函数执行顺序
以下是Unity生命周期函数执行的顺序:
- Awake()
- OnEnable()
- Start()
- FixedUpdate()
- Update()
- LateUpdate()
- OnGUI()
- OnDisable()
- OnDestroy()
需要注意的是,在不同的场景下,Unity生命周期函数的调用顺序可能会有所不同。
五、Unity生命周期顺序
以下是在一个场景中,Unity生命周期执行顺序的具体情况:
- Scene Load
- Awake()
- OnEnable()
- Start()
- FixedUpdate()
- Update()
- LateUpdate()
- OnGUI()
- OnDisable()
- OnDestroy()
- Scene Change
- Awake()
- OnEnable()
- Start()
- FixedUpdate()
- Update()
- LateUpdate()
- OnGUI()
- OnDisable()
- OnDestroy()
六、Unity生命周期外的函数
虽然不是由Unity引擎在生命周期中自动调用的函数,但也经常在开发中被使用,例如:
void OnTriggerEnter(Collider other) //进入碰撞体时调用
void OnTriggerStay(Collider other) //一直在碰撞体内时调用
void OnTriggerExit(Collider other) //离开碰撞体时调用
void OnCollisionEnter(Collision collision) //进入碰撞时调用
void OnCollisionStay(Collision collision) //一直在碰撞体内时调用
void OnCollisionExit(Collision collision) //离开碰撞时调用
七、Unity生命周期执行顺序
以下是Unity生命周期在对象中的执行顺序:
- 父对象 Awakes
- 子对象 Awakes
- 父对象 Starts
- 子对象 Starts
- 父对象 Updates
- 子对象 Updates
- 子对象 LateUpdates
- 父对象 LateUpdates
- 子对象 Destroys
- 父对象 Destroys
八、Unity生命周期函数有哪些
常见的Unity生命周期函数有:
- Awake()
- Start()
- Update()
- FixedUpdate()
- LateUpdate()
- OnGUI()
- OnEnable()
- OnDisable()
- OnDestroy()
九、Unity生命周期函数顺序
以下是Unity生命周期函数的执行顺序:
- Awake()
- OnEnable()
- Start()
- FixedUpdate()
- Update()
- LateUpdate()
- OnGUI()
- OnDisable()
- OnDestroy()
结束语
本篇文章讲解了Unity生命周期的概念以及常见的生命周期函数和执行顺序,通过理解其中的细节和注意事项,我们可以更加充分地利用好Unity引擎,使游戏制作更加顺畅、高效。