这些生命周期事件,是一些特定的方法,且是由 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...");
}
}