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中添加代码,会自动调用代码中的Reset函数,当修改代码中的变量的时候,会调用OnValidate函数

public class Test : MonoBehaviour {     public string name;     // Use...

unity3d 官方文档的调试方法

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

Unity中的Debug类调试使用

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

ShaderlabVS 作者的博客

http://blog.shuiguzi.com/2014/10/28/Release/
  • WPAPA
  • WPAPA
  • 2016-05-05 16:19
  • 1684

Unity3D的断点调试功能

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

TField OnValidate 事件

Occurs just before the data is written to the record buffer. Write an OnValidate event handler to va...
  • qiume
  • qiume
  • 2011-06-29 13:12
  • 1465

unity shader 编辑器扩展类 ShaderGUI

这应该unity5才出的新功能了,今天看文档时刚巧看到了,就来尝试了一下。效果如图:shader 的编辑器扩展分为2种方法: 是通过UnityEditor下的ShaderGUI类来实现的,形式比较近似...
  • WPAPA
  • WPAPA
  • 2016-04-22 00:38
  • 2266

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

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

Unity调试

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

Unity中的MonoBehaviour类

继承层次:Object->Component->Behaviour->MonoBehaviour MonoBehaviour是所有脚本的基类,使用javascript的话,每个脚本都会自动继承自Mon...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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