Inspector窗口可编辑变量
Inspector显示的可编辑内容就是脚本的成员变量,我们可以通过特性来对这部分内容进行编辑。特性指的是Unity利用反射时额外获取到的信息。
1 公共变量的显示与不显示
公共变量默认可以显示在Inspector窗口内供使用者直接编辑,但如果在变量前面加上【HideInInspector】特性就不会显示。
public class Test : MonoBehaviour{
[HideInInspector]
public int publicInt;
}
2 私有和保护变量的显示与不显示
私有和保护变量默认不能显示在Inspector窗口内供使用者直接编辑,但如果在变量前面加上【SerializeField】特性就可以显示。
public class Test : MonoBehaviour{
[SerializeField]
private int privateInt;
[SerializeField]
protected string protectedStr;
}
3 小部分不能显示的类型
字典
public class Test : MonoBehaviour{
public Dictionary<int,string> dict;
}
自定义类型
public struct MyStruct{
public int age;
public int sex;
}
public class MyClass{
public int age;
public int sex;
}
public class Test : MonoBehaviour{
public int MyStruct myStruct;
public int MyClass myClass;
}
4 让自定义类型可以被访问
[SerializeField]
public struct MyStruct{
public int age;
public int sex;
}
[SerializeField]
public class MyClass{
public int age;
public int sex;
}
public class Test : MonoBehaviour{
public int MyStruct myStruct;
public int MyClass myClass;
}
5 辅助特性
1 分组说明Header
public class Test : MonoBehaviour{
[Header("基础属性")]
public int age;
public int name;
[Header("战斗属性")]
public int attack;
public int health;
}
2 悬停注释Tooltip
鼠标悬停可以看到注释。
public class Test : MonoBehaviour{
[Tooltip("攻击力")]
public int attack;
}
3 修饰数值的滑条范围Range
public class Test : MonoBehaviour{
[Range(0,10)]
public int attack;
}
4 字符串显示
多行显示字符串
public class Test : MonoBehaviour{
[Multiline(4)]
public string tips;
}
滚动条显示字符串
public class Test : MonoBehaviour{
[TestArea(3,4)] //最少3,最多4,更多则滚动条
public string tips;
}
5 为变量添加快捷方法ContextMenuItem
鼠标右键快捷方法。
public class Test : MonoBehaviour{
[ContextMenuItem("重置攻击力","ChangeAttack")]
public int attack;
private void ChangeAttack() {
attack = 100;
}
}