多语言展示
当前在线:1320今日阅读:142今日分享:25

Unity 编辑器中如何以只读方式显示字段(变量)

本经验介绍在Unity 编辑器中中,如何以只读方式显示字段(变量)。以只读方式显示字段(变量)可以避免在编辑器中修改。
工具/原料

Unity 2018.3

方法/步骤
1

以只读方式显示需要通过C# Attribute实现。首先创建一个脚本Attributes4Editor。

2

在该文件中,添加如图代码,即一个继承字PropertyAttribute的属性类。

3

注意,该属性的作用对象是Field,即类中的成员变量,不能是属性。打开PropertyAttribute元数据可以查看这一点。

4

然后再创建一个名为Editor的文件夹(文件夹位置无所谓),在文件夹下创建一个名为ShowOnlyDrawer的脚本。

5

在该文件中添加如图所示代码,即继承一个PropertyDrawer并重载其OnGUI函数。注意,这是一个项目级使用的CustomPropertyDrawer,会影响所有脚本中打上对应Attribute的字段在Unity Editor中的显示。

6

要使用自己的属性和自定义的PropertyDrawer,可以在一些脚本中给字段添加[ShowOnly],如图所示。

7

添加好之后,在Unity Editor中即立刻可以看到显示为不可更改的Label。

8

点击Play运行后,可以看到这些Label的内容会随着字段更新而更新。

总结

1、以只读方式显示需要通过C# Attribute实现。首先创建一个脚本Attributes4Editor。 2、在该文件中,添加如图代码,即一个继承字PropertyAttribute的属性类。 3、注意,该属性的作用对象是Field,即类中的成员变量,不能是属性。打开PropertyAttribute元数据可以查看这一点。 4、然后再创建一个名为Editor的文件夹(文件夹位置无所谓),在文件夹下创建一个名为ShowOnlyDrawer的脚本。 5、在该文件中添加如图所示代码,即继承一个PropertyDrawer并重载其OnGUI函数。注意,这是一个项目级使用的CustomPropertyDrawer,会影响所有脚本中打上对应Attribute的字段在Unity Editor中的显示。 6、要使用自己的属性和自定义的PropertyDrawer,可以在一些脚本中给字段添加[ShowOnly],如图所示。 7、添加好之后,在Unity Editor中即立刻可以看到显示为不可更改的Label。 8、点击Play运行后,可以看到这些Label的内容会随着字段更新而更新。

注意事项

如果遇到问题,可以在下面提出疑问。

推荐信息