いやはや、なんだかんだでインスペクターとSerializedFieldわかんないなーとかおもっていろいろ探してもどうやったら同じように描画できるかわからなかったのでさくりとやってみました。
こんな感じでどうでしょうか・・・?
serializedObject.Update();
SerializedProperty iterator = serializedObject.GetIterator();
int currentDepth = 0;
while (iterator.NextVisible(true))
{
if(currentDepth < iterator.depth)
{
continue;
}
EditorGUI.indentLevel = iterator.depth;
EditorGUILayout.PropertyField(iterator, false);
if(iterator.isExpanded)
{
currentDepth = iterator.depth + 1;
}
else
{
currentDepth = iterator.depth;
}
}
serializedObject.ApplyModifiedProperties();
ポイントはdepthとisExpandのしょりです