「Unity3D」(10)自定义属性面板Inspector详解
Unity: make your lists functional with ReorderableList
Unity ReorderableList 可重新排序的列表框使用
//Test.cs
using System;
using UnityEngine;
public class Test : MonoBehaviour {
[Serializable]
public class Item {
public string name;
public GameObject[] objs;
}
public Item[] itemList;
}
SerializedObject:表示当前Inspector选中的一个或多个对象的序列化对象,是当前Inspector的可绘制对象。
EditorGUIUtility.standardVerticalSpacing:默认情况下控件之间的垂直间距使用的高度
EditorGUI.GetPropertyHeight:获取PropertyField控件所需的高度
SerializedObject.FindProperty:通过名称查找序列化的属性
SerializedProperty.FindPropertyRelative:在相对于当前属性的相对路径中检索SerializedProperty
SerializedObject.Update:更新序列化对象的表示形式
ReorderableList.DoLayoutList:自动布局绘制列表
SerializedObject.ApplyModifiedProperties:应用属性修改
//TestEditor.cs
using UnityEditor;
using UnityEditorInternal; //ReorderableList所在命名空间
using UnityEngine;
[CustomEditor(typeof(Test))]
public class TestEditor : Editor {
SerializedProperty itemList;
ReorderableList reorderableList;
//EditorGUIUtility.standardVerticalSpacing 默认情况下控件之间的垂直间距使用的高度
readonly float space