HideInInspector 属性
例:
[HideInInspector]
public NavMeshObstacle nmo;
使得一个变量不显示在inspector(检视面板)但是被序列化。即不会显示,也不会被外部类调用。
RequireComponent约束组件
实用方法:[RequireComponent(typeof(PlayMakerFSM))]
当你添加的一个用了RequireComponent组件的脚本,需要的组件将会自动被添加到game object(游戏物体)。这个可以有效的避免组装错误。举个例子一个脚本可能需要刚体总是被添加在相同的game object(游戏物体)上。用RequireComponent属性的话,这个过程将被自动完成,因此你可以永远不会犯组装错误。
实用方法:[RequireComponent(typeof(Rigidbody))]
在某个自定类(派生于MonoBehavior)前写上这个属性,
那么当附加该组件的时候,会强制自动添加组件typeof(Rigidbody)
RequireComponent约束的组件。是不能删除的。除非先删除当前自定义脚本。
PS:可以多个 typeof()
Serializable
在使用Unity开发的时候。时常会用到 [Serializable] 特性来序列化处理一个类。然后想着自己也定义一个 Attribute来管理自己代码。
using System.Runtime.InteropServices;
namespace System
{
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Delegate, Inherited = false, AllowMultiple = false)]
[ComVisible(true)]
public sealed class SerializableAttribute : Attribute
{
public SerializableAttribute();
}
}
SerializeField:序列化区域
实用方法:[SerializeField]
写在(派生于MonoBehavior)类中的变量上,实际效果如同变量前加个 public。
好处就是,你可以给变量定义成私有或者保护,并且显示在Inspector中。
Range(float min, float max):区域约束
实用方法:[Range(1, 5)]
写在(派生于MonoBehavior)类中的变量上。
这时,该变量在Inspector区域内显示成一个拖动条。
PS:也可以写在数组变量上。
Tooltip(string tooltip):提示
实用方法:[Tooltip(“这就是测试”)]
写在(派生于MonoBehavior)类中的变量上。
这时,当鼠标移动到Inspector区域的该变量上,会出现一个提示。
Space(float height):间隔
实用写法:[Space(60)]
写在(派生于MonoBehavior)类中的变量上。
这时,该变量在Inspector区域内将于上一个变量之间空开60像素。
Header(string header):显示文字
实用写法:[Header(“显示字符串”)]
写在(派生于MonoBehavior)类中的变量上。
这时,该变量在Inspector区域的显示上一行中显示显示字符串。
Multiline(int lines):多行文本框
实用写法:[Multiline(5)]
写在(派生于MonoBehavior)类中的string变量上。
这时,该变量在Inspector区域的显示为一个多行编辑框。
TextArea(int minlines, int maxlines):多行文本框(滑动条)
实用写法:[TextArea(1,7)]
写在(派生于MonoBehavior)类中的string变量上。
这时,该变量在Inspector区域的显示为一个多行编辑框,超出了最大行,就会显示滚动条。
ContextMenu(string item):组件菜单
实用写法:[ContextMenu(“ShowName”)]
写在(派生于MonoBehavior)类中的方法上。
这时,挂有该脚本的对象的Inspector的脚本的右上角三个点的按钮中多出一个菜单按钮。
DisallowMultipleComponent:不能在一个对象上重复添加该脚本
实用写法:[DisallowMultipleComponent]
写在(派生于MonoBehavior)类上。
这时,挂有该脚本的对象不能再挂这个类。
AddComponentMenu(string menuItem):在Component菜单中添加一项
实用写法:[AddComponentMenu(“新功能/生成cs文件”)]
写在(派生于MonoBehavior)类上。
这时,在菜单Component中出现了你的自定义的菜单按钮
CreateAssetMenu:增加配置
[CreateAssetMenu(menuName = “Configs/Config”)]
public class Config : ScriptableObject