[System.Serializable]
public class MyClass
{public int id;public string name;
}
public class Inspector : MonoBehaviour
{//Inspector窗口中可编辑的就是脚本的成员变量//私有和保护的成员变量在默认情况下不能被编辑和显示private int a ;protected string b ;//让私有和保护的成员变量也能被显示和编辑//加上强制序列化字段特性//[SerializeField]//序列化就是把一个对象保存到一个文件或数据库字段中去[SerializeField]private int priInt;[SerializeField]protected string priStr;private void Start(){print(priInt);print(priStr);}//公共的成员变量默认情况下可以显示和编辑//让公共成员变量不能显示和编辑//[HideInInspector][HideInInspector]public int pubInt = 1;//大部分类型都能显示编辑//字典不能被显示//一些自定义类型变量class和struct默认不能被显示//让自定义类型也可以被显示和编辑//[System.Serializable]public MyClass myClass;#region 辅助特性//分组说明特性Header//为成员分组//[Header("说明")][Header("基础属性")]public int age;public bool gender;//悬停注释Tooltip//为变量添加说明//[Tooltip("说明")][Tooltip("闪避")]public int dodge;//间隔特性space()//让两个字段间出现间隔//[space()][Space()]public int Crit;//修饰数值的滑条范围Range//[Range(Min,Max)][Range(0f, 10f)]public float luck;#endregion//多行显示字符串 默认不写参数显示3行//写参数就是对应行//[Multiline(4)][Multiline(5)]public string tips;//滚动条显示字符串//默认不写参数就是超过3行显示滚动条//[TextArea(3,4)]//最少显示3行,最多4行,超过4行就显示滚动条[TextArea(3,4)]public string tipsStr;//为变量添加快捷方法 ContextMenuItem//参数1 显示按钮名//参数2 方法名 ,该方法不能有参数和返回值//[ContextMenuItem("显示按钮名","方法名")][ContextMenuItem("重置钱", "Test")]public int money;private void Test(){money = 99;}//为方法添加特性让其能够在Inspector中执行//[ContextMenu("测试函数")][ContextMenu("测试内容")]private void Test2(){print("Test2");}//Inspector窗口中的变量关联的就是对象的成员变量,运行时改变它们就是在改变成员变量//脚本挂载在GameObj对象后,再改变脚本中的变量默认值不会影响Inspector中的值//运行中修改的信息不会保存
}