Unity笔记 脚本执行顺序 life and times

单个脚本生命周期
在网上找了2张图:
这个不太清楚简略看看
这里写图片描述
这个清楚
这里写图片描述

事件函数说明
1)Awake Start
在生命期只执行一次。多次重置可以放在OnEnable里处理。

2)FixedUpdate
用于固定频率更新,Edit->Project Setting->Time中的TimeManager可以设置频率。当Time Scale为0时,FixedUpdate代码不执行,物理处理也暂停。

3)Update,LateUpdate
和帧数同步的调用,Time.deltaTime可获得帧间隔。LateUpdate在Update后调用。

4)OnGUI
在每帧上多次调用此函数,以响应 GUI 事件。程序首先将处理 Layout 和 Repaint 事件,然后再处理每个输入事件的 Layout 和 keyboard鼠标事件。

5)OnDestroy
当脚本销毁时调用,可用来释放申请的内存。

多个脚本执行顺序
例如游戏中3个GameObject:go1 go2 go3,分别绑定3个脚本。
脚本只是在Awake和Update中分别打印自己名字和事件名。
go1脚本如下:

    void Awake () 
    {
        Debug.Log("go1 awake");
    }
    void Update () 
    {
        Debug.Log("go2 update");
    }

go2 和 go3 脚本类似,只是log的名字不同。

结果如下:
go1 awake
go2 awake
go3 awake
go1 update
go2 update
go3 update

看来Unity是把所有的GameObject同类的事件函数一起执行完再执行下一类。

改变顺序
通过Edit->Project Settings->Script Execution Order打开MonoManager面板,可以交换go1和go2顺序调整脚本执行先后,得到如下结果。
go2 awake
go1 awake
go3 awake
go2 update
go1 update
go3 update

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Unity中,可以通过修改脚本执行顺序来控制不同脚本之间的事件函数的调用顺序。有三种方法可以实现这个目的。 第一种方法是通过修改脚本的.cs.meta文件来控制脚本执行顺序。在Unity编辑器中,每个脚本文件都对应着一个.cs.meta文件。你可以打开.cs.meta文件,并修改其中的"executionOrder"属性的值来改变脚本执行顺序。较小的值表示较早执行,较大的值表示较晚执行。这种方法需要对每个脚本进行手动调整,比较繁琐。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [【Unity3D日常开发】Unity3D中实现不同脚本之间的执行顺序控制](https://blog.csdn.net/q764424567/article/details/128920346)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Unity改变脚本执行顺序](https://blog.csdn.net/weixin_42935398/article/details/123800807)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好热哦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值