赞
踩
unity 本身自带很多的attribute, 如,Rang, Min,AttributeUsage,Header,ToolTip 等。但是开发过程中往往需要程序根据工程需要或者个人喜好去做一些自定义的attribute。比如,想要对某些属性加颜色突出显示,又或者突然间嫌弃Rang的滑条模式等。
unity自定义attribute继承于UnityEngine.PropertyAttribute类,如下图:
如上图,我们期望把m_walkanble这个变量限制在 [0,100] 这个区间内。
到这里,其实我们已经完成了对MRang的使用,但是在Unity编辑器中我们会发现压根没效果。具体原因是,在上诉步骤中我们实际上只进行了约束的设置和存储。
为了实现MRang对变量m_walkanble的实际约束。我们需要创建一个新的脚本,它继承于UnityEditor.PropertyDrawer这个类,这个新的脚本负责约束的具体实现。这个脚本一定要放在Editor目录下
在这个脚本里, 我们重写了OnGUI这个方法,在这个方法里我们获取了之前设置的边界参数min和max以及当前的变量数值property.intValue,我们用Mathf.Clamp对property.intValue进行了裁剪并将结果覆盖原来的值。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。