Unity不同脚本或者多个脚本之间的执行顺序Awake, Start

Unity不同脚本或者多个脚本之间的执行顺序Awake, Start,第1张

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

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

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

Start、Update等函数也是相同的道理,那么问题就来了,这么多脚本,他们的执行顺序到底是怎样的呢?

2.点击右上角Execution Order显示如下:同样可以在Edit>Project Settings>Script Execution Order也可以打开这个页面

3、点击加号添加你想要排序的脚本文件。

4、拖动脚本文件进行排序。

5、只要把脚本的Default Time的时间改大一点,这个脚本就会迟运行的。

赶紧来试试吧!

要解决多个脚本生命周期执行混乱问题,可以使用Unity的Execution Order功能。可以通过在Project Settings ->Script Execution Order中设置每个脚本的执行顺序来实现。这样就可以控制每个脚本的执行顺序,从而解决多个脚本生命周期执行的混乱问题。

依次按条件先后顺序进行排序渲染处理。

先按上层条件排序,如上层条件相同,则进入下层条件牌序,最终分出先后Camera Depth: 越小越优先。

|---1.RenderQueue 2500已下(含2500),优先于RenderQueue 2500已上

|----|---1. Sorting Layer/Order in Layer 按照Sorting Layer/Order in Layer 设置的值,越小越优先

无此属性,等同于 Sorting Layer=default ,Order in Layer=0 参与排序

|----|----|---1. RenderQueue, 越小越优先

|----|----|----|---1. RenderQueue 相等,由近到远排序优先

|---2.RenderQueue 2500已上

|----|---1. Sorting Layer/Order in Layer 按照Sorting Layer/Order in Layer 设置的值,越小越优先

无此属性,等同于 Sorting Layer=default ,Order in Layer=0 参与排

|----|----|---1. RenderQueue, 越小越优先

|----|----|----|---1. RenderQueue 相等,由远到近排序优先


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11879671.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存