查看: 2343|回复: 0
打印 上一主题 下一主题
收起左侧

[已翻译] Unity Tricks 您可以定义脚本执行顺序

[复制链接]

[已翻译] Unity Tricks 您可以定义脚本执行顺序[复制链接]

青春L 发表于 2017-8-15 14:33:24 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式 回复:  0 浏览:  2343
您可以定义脚本执行顺序
您知道脚本的执行顺序吗?您可能知道在Update()之前,Start()会被执行,但是哪个Start()会先执行呢?在Unity 3D中有一个小的东西叫做脚本执行命令,你应该知道它。

假设我们有三个这样的脚本:
Script1.cs
[AppleScript] 纯文本查看 复制代码
using UnityEngine;
 
public class Script1 : MonoBehaviour {
 
        void Start() {
                Debug.Log("This is Script1");
        }
 
}
Script2.cs
[AppleScript] 纯文本查看 复制代码
using UnityEngine;
 
public class Script2 : MonoBehaviour {
 
        void Start() {
                Debug.Log("This is Script2");
        }
 
}

Script3.cs
[AppleScript] 纯文本查看 复制代码
using UnityEngine;
 
public class Script3 : MonoBehaviour {
 
        void Start() {
                Debug.Log("This is Script3");
        }
 
}
然后,如果我将这三个脚本放入3个不同的游戏对象中,那么控制台窗口将会是什么样的呢?答案是,顺序是未知的,结果可能是随机的。以下是第一次执行脚本时的情况:


第一次执行
然后过了一会儿:

第二次运行

这是一个严重的问题,因为你希望你的游戏是可以预测的。这种行为也可能导致难以理解和重现问题。

脚本执行顺序
Unity有一个解决这个问题的办法。到编辑-项目设置-脚本执行命令,并将你的三个脚本添加到这个列表中,就像这样:

脚本执行命令100、200和300个订单号。带有较低数字的脚本将在更高的脚本之前执行。修改之后,记得点击Apply按钮,从现在开始,您的列表脚本将始终按照相同的顺序执行。


+1
2335°C
沙发哦 ^ ^ 马上
分享至:
| 1 人收藏
因分享而快乐,学习以自强!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1
首存1元送彩金的博彩_首存一元送彩金38博彩_首存1元送彩金论坛