——[HideInInspector]
将公有的变量在Inspector面板上隐藏
[HideInInspector]
public int value;
——[SerializeField]
将私有的变量在Inspector面板上显示出来,但此变量的访问级别还是私有的
[SerializeField]
private int value;
——[Header("标题内容")]
给变量添加标题
[Header("变量")]
public int value;
——[Space(间距数值)]
给变量间添加间距
[Space(50)]
public int value;
——[Tooltip("悬停内容")]
给变量添加悬停内容
[Tooltip("这是一个变量")]
public int value;
——[Range(min,max)]
给int、float、double这种数字类型变量添加范围
[Range(0,10)]
public int value;
——[Multiline(行数)]
给string类型变量设置行数
[Multiline(5)]
public string str;
——[TextArea]
把string类型变量在Inspector面板的显示变成一个TextArea
[TextArea]
public string str;
——[ColorUsage(是否可以设置透明度)]
调用颜色选项框
[ColorUsage(true)]
public Color c;
——[FormerlySerializedAs("原始的变量名")]
例如声明一个变量:public GameObject go1,然后给go1拖拽赋值,当将变量名go1改为go2时,引用会丢失。
可以添加一个FormerlySerializedAs的属性,使属性的参数与第一次声明变量时使用的名称一致,后期调整此变量名就不会出现引用丢失了
[FormerlySerializedAs("go1")]
public GameObject go1;
——[AddComponentMenu(层级/结构)]
将此脚本添加到组件栏中(只能给类添加这个属性)
[AddComponentMenu("Test/MyTest")]
public class Test : MonoBehaviour
{
}
——[RequireComponent(typeof(添加的组件))]
添加此脚本时如果没有此组件则自动添加相应的组件(只能给类添加这个属性)
[RequireComponent(typeof(CanvasGroup))]
public class Test : MonoBehaviour
{
}
——[ContextMenu(“自定义的操作名”)]
在Inspector面板中小齿轮下增加选项(只能给方法添加这个属性)
[ContextMenu("My Test")]
public void MyMethon()
{
Debug.Log("这是我的测试方法");
}
——[ContextMenuItemAttribute(“操作名”, “执行的方法名”)]
为字段添加一个右键菜单,执行一个此类中的方法(只能给字段添加这个属性)
public class Test : MonoBehaviour
{
[ContextMenuItemAttribute("Mytest", "MyMethon")]
public int value;
public void MyMethon()
{
Debug.Log("这是我的测试方法");
}
}
——[DisallowMultipleComponent]
使一个物体只能添加一个此脚本(只能给类添加这个属性)
[DisallowMultipleComponent]
public class Test : MonoBehaviour
{
}
——[ExecuteInEditMode]
让此脚本在Editor模式下也能执行Start、Update、OnGUI等方法(只能给类添加这个属性)
[ExecuteInEditMode]
public class Test : MonoBehaviour
{
private void Awake()
{
print("ExecuteInEditMode");
}
}
——[MonoPInvokeCallback(接收的代理类型)]
C#(托管代码)中注册方法可以从C++/C(非托管代码)调用
public class Test : MonoBehaviour
{
internal delegate void TestCallBack(string eventName);
[MonoPInvokeCallback(typeof(TestCallBack))]
public static void OnCallBack(string eventName)
{
if (eventName == "complete")
{
Debug.Log("成功调用");
}
}
}
——[DllImport(“DLL名称”)]
C++/C(非托管代码) 的方法可以从C#调用
public class Test : MonoBehaviour
{
internal delegate void TestCallBack(string eventName);
[MonoPInvokeCallback(typeof(TestCallBack))]
public static void OnCallBack(string eventName)
{
if (eventName == "complete")
{
Debug.Log("成功调用");
}
}
}
来源:CSDN
作者:LLLLL__
链接:https://blog.csdn.net/LLLLL__/article/details/103923236