Posted at

Unityのオブジェクトのインスペクタを自力で再現する

More than 1 year has passed since last update.

動作確認:Unity2017.1.1p1 (64bit)


普通にインスペクタに出るようにするのが面倒なこともあるかもしれない(いやないか?)。

そこでSerializedObjectを使う。

// objは適当なUnityオブジェクト

var space = 12; // 値は適当に
var serialized = new SerializedObject(obj);
var iter = serialized.GetIterator();

while (iter.Next(true))
{
GUILayout.BeginHorizontal();

GUILayout.Space(space * iter.depth);
EditorGUILayout.PropertyField(iter);

GUILayout.EndHorizontal();
}

文字列に配列が付いてきたりするものの、それっぽいものができる。