Awake() 无论脚本是否处于激活状态都调用一次;
OnEnable() 当脚本被设置为激活状态时掉用一次;
Start() 当脚本被激活时调用一次;
FixedUpdate() 每隔固定时间间隔调用一次(默认0.02s),在0s时也会执行一次;
Update() 脚本处于激活状态时每帧调用一次;
LateUpdate() 在Update()之后调用一次;
OnGUI() 脚本处于激活状态时每帧调用两次(曾被用来渲染UI,推出UGUI之后几乎弃用);
OnDisable() 当脚本组件被设置为不可用时调用一次;
OnDestroy() 当脚本组件被销毁时掉用一次;
举例:
using UnityEngine;
public class TestLifeCycle : MonoBehaviour {
private float timer = 0; //计时器
void Update()
{
timer += Time.deltaTime; //计时器加上每帧间隔时间
if (timer >= 1f)
{
Debug.Log(“条件满足”);
GetComponent().enabled = false; //将脚本组件设置为不可用
Debug.Log(“如果出现此打印,则在将脚本组件设为不可用后,还会执行此次Update()剩下的语句”);
Destroy(GetComponent()); //销毁脚本组件
Debug.Log(“出现此打印则脚本被销毁之后,还会执行此次Update()的剩下的语句”);
}
Debug.Log(“if体外的语句也会被执行”);
}
}
只要执行到了update,在脚本组件被设置为不可用或被销毁,则都会将剩下的语句也执行一遍;