Unity 编辑器中如何显示脚本组件的属性

 时间:2024-10-12 08:45:52

本经验介绍在Unity 编辑器中,如何显示脚本组件的属性。本经验所提的显示脚本组件的属性需要创建新的Editor对象,这也意味着这种方式只能对一个脚本及其子类起作用。

Unity 编辑器中如何显示脚本组件的属性

工具/原料

Unity 2018.3

读写属性的处理

1、首先,关于Unity在Inspector中显示属性的文档可以在Unity的Wiki找到。

Unity 编辑器中如何显示脚本组件的属性

2、具体做法,首先创建一个脚本用于编写自定义Attribute,并添加如图所示Attribute。

Unity 编辑器中如何显示脚本组件的属性

3、接着,在Editor文件夹(任意位置的文件夹都可)中创建两个脚本文件。ExposeProperties.cs 提供一些可重用的函数,XXXXEditor.cs 则用于覆盖默认Editor的显示。

Unity 编辑器中如何显示脚本组件的属性

4、在ExposeProperties.cs中,按照Wiki文档创建代码即可。

Unity 编辑器中如何显示脚本组件的属性

5、在XXXEditor.cs文件中,则需要按照需要显示Property的组件类来设置。我的类是MQTTD髫潋啜缅evice,设置如图。同时在CustomEditorAttribute上添加editorForChildClasses参数,目的是让子类组件也按照这种方式显示。

Unity 编辑器中如何显示脚本组件的属性

6、然后就可以使用实现好的属性和配套Editor类。在脚本中(我的是MQTTDevice)中对一些public且可读可写的property添加[ExposeProperty]。

Unity 编辑器中如何显示脚本组件的属性

7、在Unity编辑器中,立刻可以看到效果,属性被显示了出来。

Unity 编辑器中如何显示脚本组件的属性

8、但是,如果我们设置这些属性值,再运行,会发现属性值消失。这是因为属性的序列化和运行时读写不是一回事,属性不是字段,Unity中默认未序列化/未保存。

Unity 编辑器中如何显示脚本组件的属性

只读属性的处理

1、只读属性如图所示,只有getter,或者setter为私有。

Unity 编辑器中如何显示脚本组件的属性

2、对于这种情况,我们需要修改ExposeProperties代码,第一处修改是修改其生成EditorGUILayout的过程,仅生成一个LabelField简单的显示属性的字符串形式即可。

Unity 编辑器中如何显示脚本组件的属性

3、第二处修改是GetProperties函数,所有可读的属性都处理即可。

Unity 编辑器中如何显示脚本组件的属性

4、回到unity editor,可以看到可读的公共属性以标签的形式显示了出来。

Unity 编辑器中如何显示脚本组件的属性
  • jquery如何实现淡入和淡出效果
  • 剑三镖师身份怎么开启
  • 魔兽rpg封神正式版单通开局设置流程完美攻略
  • python在windows系统上模拟鼠标点击
  • 神佑释放炼金咒鉴定书怎么用
  • 热门搜索
    熊猫手抄报 关于读书手抄报内容 历史手抄报内容 感恩节的手抄报图片 手抄报花边简单 安全健康手抄报 小学生讲文明手抄报 廉洁在我心中手抄报 交通的手抄报 我爱汉字手抄报图片