- 设置界面垂直布局:
-
EditorGUILayout.BeginVertical();
-
EditorGUILayout.EndVertical();
- 设置界面水平布局:
-
EditorGUILayout.BeginHorizontal();
-
EditorGUILayout.EndHorizontal();
- 滑块:
EditorGUILayout.Slider()
- 进度条:
EditorGUI.ProgressBar()
- 帮助框:
EditorGUILayout.HelpBox()
- 灰色地带:
EditorGUI.BeginDisabledGroup
- 绘制字段:
EditorGUILayout.LabelField()标签字段
-
EditorGUILayout.IntField() 整数字段
-
EditorGUILayout.FloatField() 浮点数字段
-
EditorGUILayout.TextField() 文本字段
-
EditorGUILayout.Vector2Field() 二维向量字段
-
EditorGUILayout.Vector3Field() 三维向量字段
-
EditorGUILayout.Vector4Field() 四维向量字段
-
EditorGUILayout.ColorField() 颜色字段
举例:
步骤(一)Scripts文件夹里创建一个新C#脚本,命名为"TaskItem"
public class TaskItem : MonoBehavior {
public int Id;
public int star;
public string Name;
public string Icon;
void Init()
{
id = 1001;
}
public string GroupName;
public int GroupId;
public string GroupKind;
}
步骤(二)Editor文件夹下chu自创建C#脚本 (Inspector界面布局)
using System.Collections;
using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(TaskItem))] //CustomEditor(typeof())用于关联指定的脚本
public class TaskInspector : Editor {
TaskItem taskItem;
void OnEnable()
{
taskItem = (TaskItem)target; //获取当前编辑自定义Inspector的对象
}
public override void OnInspectorGUI()
{
EditorGUILayout.BeginVertical(); //面板以垂直方向来布局
EditorGUILayout.Space(); //空一行
EditorGUILayout.Space();
EditorGUILayout.LabelField("Task Info"); //标题
taskItem.Id = EditorGUILayout.IntField("Task ID:",taskItem.Id);
taskItem.Name = EditorGUILayout.TextField("Task Name",taskItem.Name);
EditorGUILayout.Space();
EditorGUILayout.Space();
EditorGUILayout.Space();
EditorGUILayout.LableField("Task Desc");
taskItem.desc = EditorGUILayout.TextArea(taskItem.desc,GUILayout.MinHeight(100));
EditorGUILayout.Space();
EditorGUILayout.Space();
EditorGUILayout.Space();
taskItem.star = EditorGUILayout.Slider("Process",taskItem.star,3);
if(taskItem.star == 1)
{
GUI.color = Color.gary;
}
GUI.color = Color.white; // 防止上面的颜色变化,影响下面的颜色变化
if(taskItem.star < 0)
{
//MessageType : Error/Warning/Info
EditorGUILayout.HelpBox("任务所需星星数量不对!",MessageType.Error);
}
Rect progressRect = GUILayoutUtility.GetRect(50,50);//指定宽高
EditorGUI.ProgressBar(progressRect,taskItem.star/100.0f,"PROCESS");//绘制进度条
nextTask = EditorGUILayout.Foldout(nextTask,"nextTask"); //设置内容折叠
EditorGUILayout.Space();
EditorGUILayout.Space();
EditorGUILayout.Space();
EditorGUILayout.LabelField("Group");
EditorGUILayout.BeginHorizontal();
EditorGUILayout.LabelField("Name",GUILayout.MaxWidth(50));
player.shoeName=EditorGUILayout.TextField(taskItem.GroupName);
EditorGUILayout.LabelField("ID",GUILayout.MaxWidth(50));
player.shoeSize=EditorGUILayout.IntField(taskItem.GroupId);
EditorGUILayout.LabelField("Kind",GUILayout.MaxWidth(50));
player.shoeType=EditorGUILayout.TextField(taskItem.GroupKind);
EditorGUILayout.EndHorizontal();
EditorGUILayout.EndVertical();
}
}