可以设置Unity脚本的执行顺序

可以设置Unity脚本的执行顺序

引子

有时候,设置脚本的执行顺序还是很有必要的。我曾经遇到过这样的情况,中午去吃饭的时候程序还跑的好好的,到下午回来的时候却出现空对象异常的情况,后来我找到了错误,原来是代码的执行顺序的问题。

示例

好了,废话不说了,看步骤吧!
步骤:

  1. 在unity场景中建立3个空的游戏物体,名称分别为:Script1,Script2,Script3
  2. 建立三个脚本,脚本名称为Script1.cs,Script2.cs,Script3.cs,对应编辑脚本如下:
  • Script1.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Script1 : MonoBehaviour
{
	void Start ()
	{
        Debug.Log("Script1执行!");
	}
	void Update ()
	{
		
	}
}
  • Script2.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Script2 : MonoBehaviour
{
	void Start ()
	{
        Debug.Log("Script2执行!");
	}
	void Update ()
	{
		
	}
}
  • Script3.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Script3 : MonoBehaviour
{
	void Start ()
	{
        Debug.Log("Script3执行!");
	}
	void Update ()
	{
		
	}
}
  1. 分别为空游戏物体Script1,Script2,Script3对应添加脚本Script1.cs,Script2.cs,Script3.cs,注意,这时我添加脚本的顺序是,先为Script2添加脚本Script2.cs,再为Script1添加脚本Script1.cs,最后为Script3添加脚本Script3.cs。
    最后打印输出的结果如下图所示:

    从上图可以得出的结论是:后添加的脚本先执行
  2. 设置脚本的执行顺序,点中其中的一个脚本,然后点击右上角的Execution Order…按钮,如下图所示:

    在出现的面板中点击+号,选择要设置顺序的脚本,如下图所示:

    设置Script1、Script2、Script3的Default Time值为100、200、300,注意Default Time值越小,越先执行,最后运行打印输出的结果如下图所示:

原文链接

原文链接:https://blog.csdn.net/zxy13826134783/article/details/83550427

个人看法

这个设置虽然解决了,MONO脚本运行顺序不可控的问题,但个人觉得,这也只对少量MONO脚本的项目比较好用;如果是在那种有着众多的MONO脚本的时候,这种逻辑思路的整理,并一个个对应到相应的脚本中,再对其进行排序的话,会是一项非常繁琐的工作。所以我并不经常使用,这只是记录一下这个设置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值