您的位置:首页 > 移动开发 > Unity3D

【马马虎虎系列】Unity的attributes大集合(1)

2015-09-11 18:37 323 查看
其实写这篇文章是因为读了老外的一篇文章

老外的文章是对Unity官方参考文档的一个归纳

我这篇文章就是对归纳做一个补充说明……

Unity中有很多attributes,如果你序列化过一个字段,那你肯定用过SerializeField,如果你扩展过编辑器,你很可能已经接触到RequireComponent

但是除了这些常见的,Unity还提供了其他一些在我看来很实用的attribute,下面是我做实际测试过的一些,当做是一个补充说明。

就按照老外文章的顺序来吧。

检视面板相关

现在的大部分文章,都在讲通过单独写一个类继承Editor来自定义检视面板,这样做肯定没有错,但是其实一部分功能完全可以通过下面这些attribute实现。

[ToolTip(“我是描述”)]

有时候在检视面板中看到一个字段,在你鼠标停留在上面一段时间,或者光标输入字段值的时候,会弹出一段文字对这个字段进行描述。



我们的自定义类也可以有这样的文字描述,只要在字段上加上[ToolTip(“……”)]就可以。不过如果写中文的话,因为默认字体非常小,所以看得不是很清楚。

[Space(10)]

在检视面板中被这个属性描述的字段,在它的上面会空出指定像素的空行,其实和EditorGUILayout.Space以及GUILayout.Space差不多。测试10像素效果就不错。

[Header(“Health Settings”)]

会在字段上方显示一个标题,非常好使。截个图。



Header会自动排版增加一行空行,所以没必要额外写Space了。

[Range(0,10)]

会将字段的值限制在指定的范围内,比如上面就是限制在0-10,并且检视面板会变成一个滑动条的形式。



[Multiline]

标记string字段在检视面板里显示多行。默认是3行,也可以填入一个表示行数的参数。



[TextArea(1,5)]

和Multiline很像,但是可以指定最小行数和最大行数,如果内容超过最大行数,会出现滚动条。

[HideInInspector]

和字面意思一样,会在检视面板隐藏这个字段

[SerializeField]

用这个attribute修饰的字段,会被序列化,关于序列化的详细内容可以参考官方文档。它也会在检视面板中看到,即使是private或者protected的变量也一样。

[FormerlySerializedAs(“oldName”)]

在unity里,当一个序列化字段修改了名称,默认的该字段的序列化字段会丢失,如果结构不复杂,丢了无非是重新指定一次,但是如果序列化的数据结构很复杂,或者非常多,可以使用FormerlySerializedAs,参数是之前的字段名,这样可以起到既改名又保留了数据的作用。

和检视面板相关的特性就介绍到这里,其实官方还有更详细的描述,下一篇会介绍菜单和运行时相关的特性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity 编辑器 扩展