当前位置:   article > 正文

【Unity3D】MonoBehaviour的生命周期_monobehaviour 生命周期

monobehaviour 生命周期

1 前言

        Unity3D 中可以给每个游戏对象添加脚本,这些脚本必须继承 MonoBehaviour,用户可以根据需要重写 MonoBehaviour 的部分生命周期函数,这些生命周期函数由系统自动调用,且调用顺序与书写顺序无关。

        MonoBehaviour 的继承关系:MonoBehaviour→Behaviour→Component→Object.

        MonoBehaviour 的生命周期函数主要有:

  • OnValidate: 确认事件,脚本被加载、启用、禁用、Inspector 面板值被修改时,都会执行一次
  • Awake:唤醒事件,只执行 1 次,游戏一开始运行就执行。
  • OnEnable:启用事件,只执行 1 次,当脚本组件被启用的时候执行一次。
  • Start:开始事件,只执行 1 次。
  • FixedUpdate:固定更新事件,每隔 0.02 秒执行一次,所有物理组件相关的更新都在这个事件中处理。
  • Update:更新事件,每帧执行 1 次。
  • LateUpdate:稍后更新事件,每帧执行 1 次,在 Update 事件执行完毕后再执行。
  • OnGUI:GUI渲染事件,每帧执行 2 次。
  • OnDisable:禁用事件,只执行1 次,在 OnDestroy 事件前执行,或者当该脚本组件被禁用后,也会触发该事件。
  • OnDestroy:销毁事件,只执行 1 次,当脚本所挂载的游戏物体被销毁时执行。

2 验证

        LifeCycle.cs 

  1. using UnityEngine;
  2. public class LifeCycle : MonoBehaviour {
  3. // 确认事件, 脚本被加载、启用、禁用、Inspector面板值被修改时, 都会执行一次
  4. private void OnValidate() {
  5. Debug.Log("OnValidate");
  6. }
  7. // 唤醒事件,只执行 1 次,游戏一开始运行就执行
  8. private void Awake() {
  9. Debug.Log("Awake");
  10. }
  11. // 启用事件,只执行 1 次,当脚本组件被启用的时候执行一次
  12. private void OnEnable() {
  13. Debug.Log("OnEnable");
  14. }
  15. // 开始事件,只执行 1 次
  16. private void Start() {
  17. Debug.Log("Start");
  18. }
  19. // 固定更新事件,每隔 0.02 秒执行一次,所有物理组件相关的更新都在这个事件中处理
  20. private void FixedUpdate() {
  21. // Debug.Log("FixedUpdate");
  22. }
  23. // 更新事件,每帧执行 1 次
  24. private void Update() {
  25. // Debug.Log("Update");
  26. }
  27. // 稍后更新事件,每帧执行 1 次,在 Update 事件执行完毕后再执行
  28. private void LateUpdate () {
  29. // Debug.Log("LateUpdate");
  30. }
  31. // GUI渲染事件,每帧执行 2 次
  32. private void OnGUI () {
  33. // Debug.Log("OnGUI");
  34. }
  35. // 禁用事件,只执行1 次,在 OnDestroy 事件前执行,或者当该脚本组件被禁用后,也会触发该事件
  36. private void OnDisable () {
  37. Debug.Log("OnDisable");
  38. }
  39. // 销毁事件,只执行 1 次,当脚本所挂载的游戏物体被销毁时执行
  40. private void OnDestroy () {
  41. Debug.Log("OnDestroy");
  42. }
  43. }

        每帧都执行的日志就不放了,读者可以自行打开,这里只看下只执行几次的生命周期函数日志,如下:

3 完整生命周期

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/108067
推荐阅读
相关标签
  

闽ICP备14008679号