unity C#脚本生命周期

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体外的语句也会被执行");
    }
}


上面代码执行结果为:

unity C#脚本生命周期_第1张图片

只要执行到了update,在脚本组件被设置为不可用或被销毁,则都会将剩下的语句也执行一遍;

你可能感兴趣的:(unity C#脚本生命周期)