Unity 生命周期函数
-
-
namespace UnityApi:Monobehaviour
-
{
-
void Reset()
-
{
-
//属性面板右键操作 Reset 时执行,此函数只在编辑模式下被调用。Reset最常用于在检视面板中给定一个默认值。
-
Debug.Log("Reset 我在重置时执行");
-
}
-
-
-
void Awake()
-
{
-
//只会被调用一次,在Start方法之前被调用! 主要用于字段值的初始化工作,禁用脚本,创建游戏对象,或者Resources.Load(Prefab) 对象
-
Debug.Log("Awake 我在Statt之前执行");
-
}
-
-
-
void OnEnable()
-
{
-
//脚本可用时被调用、如果脚本是不可用的,将不会被调用!
-
Debug.Log("OnEnable 我被调用了");
-
}
-
-
-
// Use this for initialization
-
void Start()
-
{
-
//只执行一次,在Awake方法执行结束后执行,但在Update方法执行前执行, 主要用于程序UI的初始化操作,比如获取游戏对象或者组件
-
Debug.Log("Start 初始化");
-
}
-
-
-
void FixedUpdate()
-
{
-
//每一帧执行一次!不会跳帧!固定更新。固定更新常用于移动模型等操作
-
Debug.Log("FixedUpdate 我执行了");
-
}
-
-
-
// Update is called once per frame
-
void Update()
-
{
-
Debug.Log("Update 每帧执行一次");
-
}
-
void LateUpdate()
-
{
-
//先执行Update,然后才去执行lateUpdate(Update方法执行完,必定接着执行LateUpdate,而Update和FixedUpdate方法的执行顺序不确定,
-
//而且有时候FIxedUpdate执行了多帧,而Update却只执行了一帧,这就是因为跳帧的缘故造成的,只有在所有的update执行完了,再执行一次LateUpdate
-
Debug.Log("LateUpdat 我在update之后执行一次");
-
}
-
void OnGUI()
-
{
-
//在这里面进行GUI的绘制,且GUI是每帧擦除重绘的!仅仅只是绘制!没有生命周期的概念!所有关于绘制GUI的代码,都要直接或者间接地写到OnGUI方法中!
-
Debug.Log("OnGUI 执行速度基本是Update的两倍");
-
}
-
void OnDisable()
-
{
-
//脚本失效时调用,程序结束时调用。如果再启用的话会再调用OnEnable;
-
Debug.Log("OnDisabule 我在失效时被执行");
-
}
-
void OnDestroy()
-
{
-
Debug.Log("OnDEstroy 我在销毁时被执行");
-
}
-
}
【网图】
生命周期函数执行顺序
Reset -> Awake -> OnEnable -> Start -> FixedUpdate -> Update-> LateUpdate -> OnGUI -> OnDisable -> OnDestroy
Start:仅在Update函数第一次被调用前调用。Start在behaviour的生命周期中只被调用一次。Start总是在Awake之后执行。
FixedUpdate:固定帧更新,在Unity导航菜单栏中,点击“Edit”–>“Project Setting”–>“Time”菜单项后,右侧的Inspector视图将弹出时间管理器,其中“Fixed Timestep”选项用于设置FixedUpdate()的更新频率,更新频率默认为0.02s。
Update:帧更新,用于更新逻辑。每一帧都执行,处理Rigidbody时,需要用FixedUpdate代替Update。例如:给刚体加一个作用力时,你必须应用作用力在 FixedUpdate里的固定帧,而不是Update中的帧。(两者帧长不同)FixedUpdate,每固定帧绘制时执行一次,和update不同的是FixedUpdate是渲染帧执行,如果你的渲染效率低下的时候FixedUpdate调用次数就会跟着下降。FixedUpdate比较适用于物理引擎的计算,因为是跟每帧渲染有关。Update就比较适合做控制。
LateUpdate: 在所有Update函数调用后被调用,和Fixedupdate一样都是每一帧都被调用执行,这可用于控制脚本逻辑的执行顺序。例如:当物体在Update里移动时,跟随物体的相机可以在LateUpdate里实现。不然如果物体移动和相机跟随都写在Update就有可能出现获取不到已经更新好的角色位置.
文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。
原文链接:czhenya.blog.csdn.net/article/details/76461301
- 点赞
- 收藏
- 关注作者
评论(0)