📄articles 📋snippets 📁categories ⚙️uses ✏️about 🔍search

Awake、Start、Update、FixedUpdate、LateUpdate执行顺序

Awake

void Awake(){
    //初始化函数,在游戏开始时系统自动调用,一般用来创建变量。
    //在继承自MonoBehavior后即刻调用,整个脚本生命周期内,Awake函数仅执行一次。
    //GameObject的初始状态为disable时,在脚本运行时,Awake函数不会执行。
    //GameObject的初始状态为OnEnable时,在脚本运行时,Awake函数会被执行。
    //Awake函数的执行仅仅与脚本实例所绑定的游戏对象的开关状态有关。
    //如果重新加载场景,那么场景内Awake函数的执行情况重新遵循上述两点。
    //一般在Awake函数中获取游戏对象或者脚本实例的信息。
}

Start

void Start(){
    //初始化函数,在Awake函数后执行,整个脚本周期内,仅被调用一次,一般用来给变量赋值。
    //在MonoBehavior创建后在该帧Update()第一次执行前被调用;
    //Start()函数只在脚本实例被启用时才会执行。
    //如果游戏对象开启了,对象上绑定的脚本实例被禁用了,那么Start函数不会执行。
    //Start在对象OnEnable后,Update前被调用。
    //只有对象在OnEnable状态时才会调用Start函数。
    //一般在Start函数中进行一些获取之后的初始化设置
}

Update

void Update(){
    //每帧被执行一次。
    //Update帧数根据系统性能不定,与设备的性能相关,在新的一帧被渲染出的时候才会被调用。
}

FixedUpdate

void FixedUpdate(){
    //FixedUpdate在固定的时间间隔内执行,与程序运行帧率无关,与设备性能无关。
    //涉及到物理组件,比如说物体添加某个方向的力,使用FixedUpdate会使效果更顺滑。
}

LateUpdate

void LateUpdate(){
    //每帧被执行一次。
    //LateUpdate在所有Update函数被执行完毕之后才会被调用。
    //比如说脚本一中有一个Update函数,一个LateUpdate函数,脚本二中有一个Update函数,脚本三中有一个Update函数,那么执行顺序是:脚本一Update函数、脚本二Update函数、脚本三Update函数、脚本一LateUpdate函数。
}

这里一张图总结执行顺序。
2023-11-19T10:39:23.png

Unity中函数执行顺序。

© 2021 Awake、Start、Update、FixedUpdate、LateUpdate执行顺序 · 本文由 Charlie 原创撰写,发布于 sodebug.com。 未经授权禁止转载、洗稿、机器抓取。AI 训练数据使用需获得书面授权。
GK
独立开发者,在 WordPress、Nginx 和各种 API 之间切换。不写没用的东西。

related相关文章

#01关于IO操作的操作的同步、异步、阻塞、非阻塞1 min#02C#处理字符串——String.Substring的用法3 min#03使用Unity3D搭建游戏登录界面(UGUI)2 min
$ echo "less bullshit, more debugging" | send-to-inbox
新文章直接发到邮箱,一个月 2-4 封。
$ subscribe →