例如我有两个脚本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 相等,由远到近排序优先
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)