了解Unity脚本的生命周期对于游戏开发非常重要。 本文对生命周期进行了记录和总结。 Unity的脚本生命周期(消息)是脚本运行时自动顺序执行的一系列函数。unity官网上有关于生命周期的详细介绍。
场景开始阶段
Awake:加载游戏对象时(启用对象时)执行一次。 如果游戏对象没有启用,启用后会调用Awake;
:每次激活对象时调用;
Start:对象加载后,启用脚本后执行一次Start。
:该函数将在关卡场景加载后调用。 只有通过 .() 加载的场景才会调用此函数。
gameObject.SetActive(true);//代码启用物体方法
this.enabled = true;//代码启用脚本方法
摘要: Awake 和 Start 方法仅在加载场景后执行一次,因此它们充当构造函数来初始化数据成员。 在执行序列中,Awake 在 Start 之前调用。 这是通过告诉游戏新关卡已加载来完成的。
物理阶段
:脚本启用后,会固定时间执行,适合物理计算和更新,不会受到渲染影响; 默认为0.02s,可以通过Edit/设置
:碰撞事件,满足碰撞条件时调用;
:触发器,满足触发条件时调用
逻辑阶段
:渲染帧,启用脚本后,每次渲染场景时都会调用一次。 帧率与设备性能和渲染量有关。
: 之后打电话。 一开始,所有的计算都已完成。 一个常见的用途是跟随第三人称摄像机。 如果您让角色移动并转向,则可以在 中执行所有摄像机移动和旋转计算。 这可确保角色在摄像机跟踪其位置之前已完全移动。
场景渲染
:当前Mesh在任意相机上可见时调用;
:当前Mesh在任何相机上都不可见时调用;
末期
:当对象被禁用或不活动时调用此函数。
:当脚本被销毁或者游戏对象被销毁时调用
:在退出应用程序之前对所有游戏对象调用此函数。 在编辑器中,当用户停止播放模式时调用该函数。
鼠标输入事件
:当前按下鼠标时调用;
:鼠标进入当前状态时调用;
:鼠标离开当前状态时调用;
:鼠标抬起时调用;
:鼠标经过当前时刻时调用;