在观摩大神的代码中,我们经常看到这些东西出现 ,或许你也用过 [HideInInspector] [Header()]
[ ]
一开始,鬼晓得这个什么东西。
方括号加看不懂的英文、参数,在类、变量名前。相信你也有和我一样问题。
可是遇见新的事物,人都有好奇的的心理,这什么东西?
好奇害死猫
自己看了好多文章,敲你妈
[RequireComponent( typeof( Interactable ) )]
public class Timor : MonoBehaviour
{
[EnumFlags]
public Hand.AttachmentFlags attachmentFlags = Hand.defaultAttachmentFlags;
[Header("colorFor")]
public Color color = Color.cyan;
[HideInInspector]
public Vector3 pos = Vector3.Zero;
}
[Conditional("DEBUG")]
public void UnitTest()
{
//单元测试代码
}
}
[ExecuteInEditMode, RequireComponent(typeof(MeshRenderer), typeof(MeshFilter))]
public class SteamVR_PlayArea : MonoBehaviour
{
}
什么是特性
英文名是Attribute,中文名是特性
官方定义:
特性提供了功能强大的方法,用于将元数据或声明信息与代码(程序集、类型、方法、属性等)相关联。特性与程序实体关联后,即可在运行时使用“反射”的技术查询特性。
特性具有以下属性:
- 特性可向程序中添加元数据。元数据是有关在程序中定义的类型的信息。所有的 .NET 程序集都包含指定的一组元数据,这些元数据描述在程序集中定义的类型和类型成员。可以添加自定义特性,以指定所需的任何附加信息。
- 可以将一个或多个特性应用到整个程序集、模块或较小的程序元素(如类和属性)。
- 特性可以与方法和属性相同的方式接受参数。
- 程序可以使用反射检查自己的元数据或其他程序内的元数据。
个人理解,可以对类 变量 方法 等进行标记,从而实现某些功能。
特性也是类,都是程序猿写的。。 可以理解为一个特殊的类
特性分两种
1.系统自带特性
如:[Obsolete] [AttributeUsage] [Conditional]
2.自定义特性
自己去写。
后几篇写如何自定义特性。和常用特性