Unity系统特性

特性 (Attribute) 是可以放在脚本中的类、属性或函数上方来指示特殊行为的标记,以用于在运行时传递程序中的各种元素(eg. 类、方法、结构、枚举、组件等等)的行为信息的声明性质的标签。例如,可以将 HideInInspector 特性添加到属性声明上方,从而防止 Inspector 显示该属性(即使是公共属性)。

Unity中有如下所示的常用特性:

[SerializeField]:在Inspector面板中显示非public属性,并且序列化
[NonSerialized]:在Inspector版面中隐藏public属性,并且序列化
[HideInInspector] :在Inspector版面中隐藏public属性,没有序列化的功能
[AddComponentMenu(“XXX/XX/XXX”)] :让Component菜单下出现你自定义的类,位置是“XXX/XX/XXX”
[ExecuteInEditMode] :在EditMode下也可以执行脚本。Unity中默认情况下,脚本只有在运行的时候才被执行,加上此属性后,不运行程序,也能执行脚本。
[RequireComponent (typeof (ClassName))] :(脚本依赖)把当前类添加到GameObject时会自动添加“CalssName”这个类
[ContextMenu (“XXX”)] :在Inspector版面中,右击包含这条标记的类,在菜单中会出现名为“XXX”的选项,点击选项,会执行被标记的功能(注:此乃标记功能也,非标记类)
[MenuItem (“XXX/XXX”)] :在菜单中出现选项栏,点一下,执行对应功能。注:对应的功能必须是static,同时,使用的时候需要加上using UnityEditor,这个类也要找个Editor文件夹放(一般放“Assets\Editor”)

特性扩展&开发:

 

参考:https://zhuanlan.zhihu.com/p/364975424?utm_id=0

分类: C#Unity3D

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注