【第22期】观点:IT 行业加班,到底有没有价值?

Unity让调试更加简单(一)

原创 2016年05月31日 21:24:12
“重视能够节约时间的工具,高效率的程序猿都把时间花在制作工具上“。——Bobby Johnson(原FaceBook技术总监)

今天在通过Material的RenderQueue调整层级的时候,因为是通过代码调整的,所以每次调整完以后必须运行程序才能看到效果。非常浪费时间

原始代码是这样的:

using UnityEngine;

public class MaterialOrder : MonoBehaviour {

    [Range(3000,3300)]
    public int renderLayer = 3000;

    void Start()
    {
        ChangeQueue(renderLayer);
    }

    void ChangeQueue(int layer)
    {
        if (layer >= 3300) layer = 3300;
        gameObject.GetComponent<Renderer>().sharedMaterial.renderQueue = layer;
    }
}

为了提高效率

于是,有了下面的代码

#if UNITY_EDITOR
using UnityEditor;//自动调用OnValidate()方法
#endif

using UnityEngine;

[ExecuteInEditMode]//添加这个以后,Start方法会在添加脚本和点击run或stop的时候执行一遍
[AddComponentMenu("MyTool/MaterialOrder")]
public class MaterialOrder : MonoBehaviour {

    [Range(3000,3300)]
    public int renderLayer = 3000;

    void Start()
    {
        ChangeQueue(renderLayer);
    }

#if UNITY_EDITOR
    void OnValidate()//在Inspector中修改参数值,就会自动调用这个方法
    {
        ChangeQueue(renderLayer);
    }
#endif

    void ChangeQueue(int layer)
    {
        if (layer >= 3300) layer = 3300;
        gameObject.GetComponent<Renderer>().sharedMaterial.renderQueue = layer;
    }
}

欢迎转载。转载请注明:
Hello光头原创
如有建议或意见,欢迎留言。
也欢迎大家加我qq,一起学习进步:1009570451
版权声明:Hello光头原创,欢迎交流拍砖扔鸡蛋,qq:1009570451 举报

相关文章推荐

Unity中的Debug类调试使用

UnityEngine.Debug: Class containing methods to ease debugging while developing a game. 该类中包含了一些便于游戏...
  • cbbbc
  • cbbbc
  • 2016-04-26 19:35
  • 3776

Unity3D的断点调试功能

断点调试功能可谓是程序员必备的功能了。Unity3D支持编写js和c#脚本,但很多人可能不知道,其实Unity3D也能对程序进行断点调试的。不过这个断点调试功能只限于使用Unity3D自带的MonoD...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

unity3d 官方文档的调试方法

之前从网上看到一个调试方法的版本,也能用,但是在一些情况下不行。 比如,我经常在工程中用到sqlite数据库,用网上流传的方法,需要在mono里面编译代码。如果是unity3d自己编译代码是没有任何...

说说如何使用unity Vs来进行断点调试

说说如何使用unity Vs来进行断点调试   2014-01-02 09:35:49|  分类: unity3d技术|举报|字号 订阅 大...

Unity3D - 图形性能优化:帧调试器

最新版Unity官方文档翻译,图形性能优化之帧调试器。
  • ynnmnm
  • ynnmnm
  • 2015-03-30 12:24
  • 3823

Unity调试

Unity脚本的调试采用了“附加”的方式,也即使用另一个进程来

在Unity中添加代码,会自动调用代码中的Reset函数,当修改代码中的变量的时候,会调用OnValidate函数

public class Test : MonoBehaviour {     public string name;     // Use this for initialization     v...

unity 项目实践经验 和 架构体系

GameRes游资网授权发布 文 / 吴秦(Tyler)   本次分享总结,起源于腾讯桌球项目,但是不仅仅限于项目本身。虽然基于Unity3D,很多东西同样适用于Cocos。本文从以下10大点进...

Unity中的协同函数

在学习unity3d的时候很容易看到下面这个例子: 1 void Start () { 2 StartCoroutine(Destroy()); 3 } 4 5 IEnumerator Des...

Unity中的各种寻找GameObject方法

1.GameObject.Find():寻找Hierarchy面板中的activie 不为false的游戏对象; 路径如官方事例写法: public class ExampleClass : Mo...
  • cxihu
  • cxihu
  • 2015-08-27 15:34
  • 10084
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)