最近做项目的时候发现属性看似没有什么,但是有时候会非常有用。在这篇文章中我整理下常用的属性。
1.ContextMenu 上下文菜单
这个译名我觉得很不自然,其实上下文算是啥东西……这个函数是在Inspector的脚本中加一个触发事件,就是删除脚本重置脚本按钮的那个小拉菜单中,具体很难说清位置,所以我截了个图。
public class Nigori: MonoBehaviour {
[ContextMenu("Hello World!")]
void HelloWorld()
{
Debug.Log("Hello World!");
}
}
2.AddComponentMenu 添加组件菜单
这个函数非常的方便,原本的脚本(组建)都会在“Component/Script”菜单下,在类之前声明一下这个,它便可以出现在"Componet"菜单下的任何位置。。
[AddComponentMenu("MyNigori/NigoriType")]
public class NigoriType: MonoBehaviour
{
Debug.Log("Hello World!");
}
3.HideInInspector 在检视面板中隐藏
HideInInspector 可以让public 定义的在检视面板中隐藏。
public class Nigori : MonoBehaviour
{
[HideInInspector]
public Transform m_Target;
void Start()
{
m_Target = GameObject.Find("test").transform;
}
}
4.RequireComponent 必须要有相应的组建
加入一个组建之前必须存在另一个相应的组建,若没有则自动创建。这个在项目中非常有必要用到,尤其是项目人员比较多的时候。
[RequireComponent (typeof (Rigidbody))]
public class Nigori : MonoBehaviour {
void FixedUpdate() {
rigidbody.AddForce(Vector3.up);
}
}
5.Serializable 可序列化
这个属性可以让子类(继承类)的变量属性显示在检视面板中,也能序列化它。(JS的话完全不需要这个属性。)
//SerializableTest.cs
[System.Serializable]
public class SerializableTest
{
public int p = 5;
public Color c = Color.white;
}
//SerializableTest2.cs
public class SerializableTest2 : MonoBehaviour
{
public SerializableTest test;
}
先整理这么多,以后我会把在网上看到的和自己经常用到的整理到这里。