Unity不同脚本之间的执行顺序

我们都知道,Unity中某个脚本的执行顺序是Awake、Start、Update、LateUpdate等,但是不同的脚本之间的执行顺序是怎样的呢?

例如我有两个脚本Script1和Script2,那么这两个脚本的Awake执行顺序是怎样的呢?

要知道真相我们就必须了解Unity后台的运行原理,其实Unity后台是单线程执行的,所谓的协程都是伪多线程。不同脚本的Awake在后台的执行真相是这样的:


void Awake()

{

Script1.Awake();

Script2.Awake();

}


手动设置脚本执行顺序:


1、先在project窗口选中一个脚本文件,然后在Inspector卡中显示如下:

2、点击右上角Execution Order显示如下:


这样设置之后需要注意,在先执行的脚本中引用后执行的脚本会报错


下方数值越小的排在越前面脚本将率先执行,如果没有设置的脚本将按默认的顺序执行。


默认情况下脚本的执行顺序不可控,所以最好别在一个脚本初始化中对其他脚本引用,除非你确定该脚本已经实例化


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值