[Unity 3D] 多个C#脚本中Awake、OnEnable和Start等函数的执行顺序

问题:

 在Unity的官方文档中关于Awake 和Start函数的解释里有提到:

原文:Each GameObject's Awake is called in a random order between objects.

翻译:多个GameObject的Awake之间是以随机的顺序调用的。

如果按照官方文档里的说法,那我们是不是就没办法控制多个脚本间Awake的顺序了?

No! No! No!

------------------------------------------------------------------------------------------------------------------------------------------------------

先说结论:

经过测试以后发现,各个GameObject的脚本之间的Awake、OnEable和Start等函数的执行是有规律的:

  1. 最先被添加到GameObject上的脚本中的Awake、OnEable是最后被调用的,反之最后被添加的则会最先被调用。
  2. 当每个脚本的Awake、OnEable都被调用完了之后,才会调用各个脚本的Start函数。
  3. 每个脚本的Start都被调用完了之后,才会调用各个脚本的FixedUpdate函数。

我们再总结一下:

  • 最先被添加的脚本最后被执行,反之则反。
  • Awake和OnEable成对出现,一个脚本的Awake和OnE
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值