0
点赞
收藏
分享

微信扫一扫

Unity脚本生命周期

田妞的读书笔记 2022-04-13 阅读 69
Unity

这些生命周期事件,是一些特定的方法,且是由 Unity 引擎事先定义好的,在程序的运行过程中,由引擎自动调用。全部定义在 MonoBehaviour 这个类中

1.Awake() ※

唤醒事件,只执行一次。

2.OnEnable()

启用事件,只执行一次。当脚本组件被启用的时候执行一次。

3.Start() ※

开始事件,只执行一次。

4.FixedUpdate() ※

固定时间更新事件,执行 N 次,0.02 秒执行一次。不受电脑帧率影响

所有物理组件相关的更新都在这个事件中处理。

5.Update() ※

更新事件,执行 N 次,每帧执行一次。受电脑帧率影响

6.LateUpdate()

稍后更新事件,执行 N 次,在 Update 事件执行完毕后再执行。

7.OnGUI()

GUI 渲染事件,执行 N 次,执行的次数是 Update 事件的两倍。

8.OnDisable()

禁用事件,执行一次。在 OnDestroy 事件前执行。

或者当该脚本组件被“禁用”后,也会触发该事件。

9.OnDestroy() ※

销毁事件,执行一次。当脚本所挂载的游戏物体被销毁时执行。

10.注意事项

生命周期事件,全部是由系统定义好的,且系统会自动调用。

系统调用这些事件的顺序,和我们代码里面的书写顺序无关。

在这里插入图片描述

我们在脚本里测试一下:

using UnityEngine;

public class NewBehaviourScript : MonoBehaviour
{
    /// Add a context menu named "Do Something" in the inspector
    /// of the attached script.
    /// 
    void Awake()
    {
        Debug.Log("Awake...");
    }

    void OnEnable()
    {
        Debug.Log("OnEnable...");
    }

    void Start()
    {
        Debug.Log("Start...");
    }

    void FixedUpdate()
    {
        Debug.Log("FixedUpdate...");
    }

    void Update()
    {
        Debug.Log("Update...");
    }

    void LateUpdate()
    {
        Debug.Log("LateUpdate...");
    }

    void OnGUI()
    {
        Debug.Log("OnGUI...");
    }

    void OnDisable()
    {
        Debug.Log("OnDisable...");
    }

    void OnDestroy()
    {
        Debug.Log("OnDestroy...");
    }

}

Reference:

举报

相关推荐

0 条评论