Inspector

[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中的值
    //运行中修改的信息不会保存
}

posted @ 2025-03-15 12:13  cannedmint  阅读(9)  评论(0)    收藏  举报