Unity让调试更加简单(一)

来源:互联网 发布:checking php support 编辑:程序博客网 时间:2024/06/14 13:57
“重视能够节约时间的工具,高效率的程序猿都把时间花在制作工具上“。——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_EDITORusing UnityEditor;//自动调用OnValidate()方法#endifusing 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
0 0
原创粉丝点击