ReadOnlyAttribute.cs usingUnityEngine;publicclassReadOnlyAttribute:PropertyAttribute{} 这个脚本不用填写内容,毕竟功能实现是在另一个脚本. 这个脚本需要放置在Editor文件夹中,因为是编辑器代码 ReadOnlyDrawer.cs usingUnityEditor;usingUnityEngine;[CustomPropertyDrawer(typeof(ReadOnlyAttribute))]publicclassReadOnlyDra...
9.PropertySpace 属性间隔,相当与排版中的行间距,用来对不同类型的属性进行分割比较有效 publicstringTypeA1,TypeA2,TypeA3;[PropertySpace]publicstringTypeB1;publicstringTypeB2; 10.ReadOnly 只读属性,用来显示一些不想被修改的属性,用来查看或测试,我经常使用 [ReadOnly]publicstringplayer1Name="KDF";publicstring...
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { GUI.enabled=false; EditorGUI.PropertyField(position, property, label,true); GUI.enabled=true; } }#endif [ReadOnly] public string PLUGIN=""; 2、私有变量在 Inspector 显示出来 [SerializeField] [ReadOnly] [Ser...
继承PropertyAttribute这个类,就能用一个自定义的PropertyDrawer类去控制继承PropertyAttribute类的变量在Inspector面板中的显示。在IDE中,按下CTRL,再点击TestPropertyAttr 中的[ReadOnly]标签,会发现跳到了ReadOnlyAttribute.cs中。可以理解为,我们继承PropertyAttribute这个类,实现了自己定义一个标签。 2.重绘 在Editor文件...
我们使用该枚举为value获取相对应类型的值,然后使用一个Label在Inspector面板中绘制出来(\t为制表符,为了美化显示)。 好了,接下来打开我们的“Test.cs”脚本,添加如下代码: 现在,让我们回到Unity中查看一下效果: 这个。。。是不是很简单呀。接下来让我们制作一个带有参数的。 让我们打开我们的“ReadOnlyAttribute...
Unity Inspector面板常用的属性 在扩展Unity的时候,往往会用到一些属性,这里将常用的列一下。 1、属性只读; 代码语言:javascript 复制 #ifUNITY_EDITORusing UnityEditor;#endif using UnityEngine;publicclassReadOnlyAttribute:PropertyAttribute{}#ifUNITY_EDITOR[CustomPropertyDrawer(typeof(ReadOnlyAttribute))]public...
除了上述属性装饰器外,Unity还提供了许多其他装饰器,如[HideInInspector]、[ReadOnly]、[SerializeField]等,它们可以帮助你更好地定制和管理Inspector界面的显示。四、总结通过本文的介绍,你应该已经对Unity Editor的Inspector界面编辑有了更深入的了解。通过灵活运用各种属性装饰器,你可以轻松定制Inspector界面,使其更加...
ReadOnly -- 只读属性 [ReadOnly]publicint[]ReadOnlyArray2=newint[]{1,2,3}; PropertyOrder属性展示顺序 image [TabGroup] 分组显示 image 进阶 校验数据有效性 Valid Required Array 下拉列表选择 image Range 支持 array [Range(0,1)]publicfloat[]FloatRangeArray; ...
然后在Editor文件夹中创建一个名为“ReadOnlyAttributeDrawer.cs”的脚本,具体如下图所示: 首先,打开我们得“ReadOnlyAttribute.cs”脚本,为其添加如下代码: 这段代码很简单,就是让我们的“ReadOnlyAttribute”类继承自“PropertyAttribute”类,该类的解释如下图所示: ...
usingUnityEngine;publicclassLabelAttribute:PropertyAttribute{privatereadonlystringname="";publicstringName{get{returnname;}}publicLabelAttribute(stringname){this.name=name;}} 实际使用部分 你可以直接Copy LabelAttribute 和 LabelAttributeDrawer这两个脚本直接拿来使用,具体使用方法如上图。