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的内容会随着字段更新而更新。