整理一些Unity3D中的语言标签功能

  • [ExcludeFromDocs]
    • 自动生成API文档时,不列出该函数? 
  • [WrapperlessIcall]
    • 声明函数为内部实现,非公开方法 ?
  • [MethodImpl(MethodImplOptions.InternalCall)]
    • 包含于System.Runtime.CompilerServices名空间下
    • 通常用于友元函数声明(extern)?
    • MethodImplOptions参数使用较多的是InternalCall(内部调用),其它还有ForwardRef/NoInlining/NoOptimization/PreserveSig/Synchronized/Unmanaged参数,具体作用可查看注释。
    • 通常与WrapperlessIcall联合使用 
  • [HideInInspector]
    • 使一个继承自MonoBehaviour的类,被挂载到组件上时不在Inspector窗口中显示指定的public对象。
    • 当需要在一个MonoBehaviour子类中声明一个public的对象,同时又不希望能从Inspector窗口设置它的初始值时,可加上这个语言标签。
  • [Serializable]
    • 用于修饰类,表明该类将被序列化。
  • [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false)]
    • 指定另一属性类(类/字段/构造函数等)的用法
    • 被该标签修饰的类需要继承Attribute类
    • AttributeTargets参数指定了属性类型,具体作用可查看注释
    • AllowMultiple指定了能否为一个元素指定多个属性实例
  • [System.Runtime.InteropServices.DllImport("xxx.dll")]
    • 指明extern函数是从哪个dll中实现的
  • [Conditional]
    •  
posted @ 2016-11-02 13:48  AngelXiao  阅读(3109)  评论(0编辑  收藏  举报