您的位置:

Unity生命周期详解

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生命周期函数的执行顺序:

  1. Awake()
  2. OnEnable()
  3. Start()
  4. FixedUpdate()
  5. Update()
  6. LateUpdate()
  7. OnGUI()
  8. OnDisable()
  9. OnDestroy()

结束语

本篇文章讲解了Unity生命周期的概念以及常见的生命周期函数和执行顺序,通过理解其中的细节和注意事项,我们可以更加充分地利用好Unity引擎,使游戏制作更加顺畅、高效。