Awake(唤醒)变量 = 字段 函数 = 方法
Awake()是在脚本对象实例化是被调用的,而且只执行一次,Awake函数运行优先及高于Start函数。在Awake函数中,只要脚本附加到游戏对象中,哪怕不勾选,依旧会执行Awake函数中的代码。在这个阶段,脚本可以进行一些初始化操作,例如获取组件、初始化变量等。
private void Awake() { Debug.Log("初始化"); }
OnEnable(开启)
当物体激活的时候执行的方法;在这个阶段,脚本可以进行一些启用操作,例如开启协程、播放音效等。
private void OnEnable() { Debug.Log("播放音效"); }
Start(开始)
而Start()是在对象的第一帧时被调用的,而且是在Update()之前。
Start是在对象被第一次enable之后,在Update之前调用的,Start在脚本的生命周期中也只能被调用一次。
Start可能不会被立刻调用,比如我们之前没有让其enable,当脚本被enable时,Start才会被调用。
在这个阶段,脚本可以进行一些启动操作,例如播放动画、初始化游戏对象等。
private void Start() { Debug.Log("播放游戏、初始化游戏对象"); }
Update(帧执行 更新)
在控制游戏逻辑的过程中,一般是需要按照每帧去处理的(使用Update())在这个阶段,脚本可以进行一些更新操作,例如移动游戏对象、每帧需要更新的逻辑在Update函数里调用
private void Update()
{float time = 0;
time += Time.deltaTime;//方法1:time 加上 Time.deltaTime 得到一个值;将得到的值有赋值给time。
time = time + Time.deltaTime;//方法2Debug.Log("update刷新的时间:" + time);
}
LateUpdate(迟一点的 更新 刷新)
是当Update调用结束,并且渲染逻辑调用完,才会调用LateUpdate,所以当渲染结束后,需要更新状态的逻辑 可以放到LateUpdate。跟随物体的相机可以在LateUpdate里实现。LateUpdate中跟随的话就会只跟随所有Update执行完后的最后位置、旋转,这样就防止了抖动
private void LateUpdate() { Debug.Log("渲染逻辑调用完 执行");}
OnDisable
当物体取消激活的时候执行的代码 。在这个阶段,脚本可以进行一些禁用操作,例如停止动画、停止音效等
private void OnDisable() { Debug.Log("停止动画、关闭音效"); }
OnDestroy(Destroy :销毁)
当对象模型删除的时候执行的代码,或者是运行结束时执行
private void OnDestroy() { Debug.Log("当销毁时调用"); }
注:该篇内容包含老师课上所讲与自我总结