//========== This is in one script called PlayerController ========================
public class PlayerController : MonoBehaviour
{
[SerializeField]
private GameObject[] playerBodyParts;
}
//=================================================================================
//========== This is all in one script called PlayerControllerInspector ===========
[CustomEditor(typeof(PlayerController))]
public class PlayerControllerInspector : Editor
{
public override void OnInspectorGUI()
{
serializedObject.Update();
EditorList.Show(serializedObject.FindProperty("playerBodyParts"));
EditorGUILayout.PropertyField(serializedObject.FindProperty("test"));
serializedObject.ApplyModifiedProperties();
}
}
public static class EditorList
{
public static void Show (SerializedProperty list) {
EditorGUILayout.PropertyField(list, false);
list.FindPropertyRelative("Array.size").arraySize = 15;
EditorGUI.indentLevel += 2;
if(list.isExpanded)
for (int i = 0; i < list.arraySize; i++)
EditorGUILayout.PropertyField(list.GetArrayElementAtIndex(i));
EditorGUI.indentLevel -= 2;
}
}
//===================================================================================