В справке смотрите SerializedObject и SerializedProperty.
SerializedObject это объект который получает доступ к сериализованным(сохраненным в сцену или в ассет в проекте) свойствам(полям) объекта (или нескольких), который вы редактируете. Если вы пишете кастомный инспектор (наследуетесь от Еditor), то serializedObject у вас уже есть
http://docs.unity3d.com/ScriptReference ... bject.htmlДля EditorWindow нужно будет его создать через конструктор.
Дальше нужно по имени получить SerializedProperty через SerializedObject.FindProperty и отобразить её через EditorGUILayout.PropertyField
Используется csharp
serializedObject.Update(); //обновить значения
EditorGUI.BeginChangeCheck();
EditorGUILayout.PropertyField(serializedObject.FindProperty("title"));
EditorGUILayout.PropertyField(serializedObject.FindProperty("color"));
EditorGUILayout.PropertyField(serializedObject.FindProperty("myClass), true);//для своих классов или массивов использовать такой вариант для автоматического отображения дочерних свойств
if (EditorGUI.EndChangeCheck())
{
serializedObject.ApplyModifiedProperties();//применить измененные значения обратно к объекту
}
Имя SerializedProperty можно увидеть, если в инспекторе с зажатым шифтом сделать правый клик по свойству и выбрать в меню "Print Property Path"
Для DrawDefaultInspector используется такая конструкция, которая автоматически перебирает все имеющиеся свойства
Используется csharp
serializedObject.Update(); //обновить значения
EditorGUI.BeginChangeCheck();
SerializedProperty iterator = serializedObject.GetIterator();
while(iterator.NextVisible(true))
{
EditorGUILayout.PropertyField(iterator, true);
}
if (EditorGUI.EndChangeCheck())
{
serializedObject.ApplyModifiedProperties();
}