Unity Inspector的简单绘制

2 篇文章 0 订阅

用到的脚本暂时命名为Test

[CustomEditor(typeof(Test))]

重写OnInspectorGUI()函数

public class MyInspector : Editor//继承Editor
{
    public override void OnInspectorGUI()//重写OnInspectorGUI()
    {
        //开始横向布局
        GUILayout.BeginHorizontal();
        if (GUILayout.Button("选择XML路径"))
        {
            //写button执行的函数
            //打开文件  得到Path  Path是个属性   这里未写
             Path = EditorUtility.OpenFilePanel("打开训练XML文件", @"C:\Users\    \Desktop", "xml");
        }
        EditorGUILayout.TextField(Path);
        //结束横向布局
        GUILayout.EndHorizontal();
        //该函数在下方得到下面的样式:选择XML路径按钮和路径的text在“Test”脚本上方
        //反之则相反
        base.OnInspectorGUI();
    }
}

base.OnInspectorGUI()在绘制之后的样式

——————————————分割线————————————————
实现如下效果:
完全展开前

完全展开后

    GUILayout.BeginHorizontal();
    GUILayout.Space(10);
    TrainingPerson_Show = EditorGUILayout.Foldout(TrainingPerson_Show, "Traning Person");
    if( GUILayout.Button("增加",GUILayout.Width(50)))
    {
        AddPerson("new person");
        Xml_Data.XmlList.traningPerson.Add(new Person());
    }
    if (GUILayout.Button("删除",GUILayout.Width(50)))
    {
        TakeAwayPerson();
    Xml_Data.XmlList.traningPerson.RemoveAt(Xml_Data.XmlList.traningPerson.Count-1);
    }
    GUILayout.EndHorizontal();
    if (TrainingPerson_Show)
    {
        List<string> Temp_List = new List<string>();
        for (int i = 0; i <= Xml_Data.XmlList.traningPerson.Count - 1; i++)
        {           
            GUILayout.BeginHorizontal();
            GUILayout.Space(20);
            Person_Show[i] = EditorGUILayout.Foldout(Person_Show[i], "100" + (i + 1));
            GUILayout.EndHorizontal();

            if (Person_Show[i])
            {
                Person p = new Person();
                GUILayout.BeginHorizontal();
                GUILayout.Space(30);
                EditorGUILayout.PrefixLabel("Person ID");
                p.personID = EditorGUILayout.TextField(Xml_Data.XmlList.traningPerson[i].personID);
                Temp_List.Add(p.personID);
                GUILayout.EndHorizontal();

                GUILayout.BeginHorizontal();
                GUILayout.Space(30);
                EditorGUILayout.PrefixLabel("Person Name");
                p.personName = EditorGUILayout.TextField(Xml_Data.XmlList.traningPerson[i].personName);
                GUILayout.EndHorizontal();

                GUILayout.BeginHorizontal();
                GUILayout.Space(30);
                EditorGUILayout.PrefixLabel("Person Info");
                p.psrsonInfo = EditorGUILayout.TextField(Xml_Data.XmlList.traningPerson[i].psrsonInfo);
                GUILayout.EndHorizontal();
                Xml_Data.XmlList.traningPerson[i] = p;
                }
            }
        }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值