public virtual void DrawCommandGUI() { Command t = target as Command; // Code below was copied from here // http://answers.unity3d.com/questions/550829/how-to-add-a-script-field-in-custom-inspector.html // Users should not be able to change the MonoScript for the command using the usual Script field. // Doing so could cause block.commandList to contain null entries. // To avoid this we manually display all properties, except for m_Script. serializedObject.Update(); SerializedProperty iterator = serializedObject.GetIterator(); bool enterChildren = true; while (iterator.NextVisible(enterChildren)) { enterChildren = false; if (iterator.name == "m_Script") { continue; } if (!t.IsPropertyVisible(iterator.name)) { continue; } if (iterator.isArray && t.IsReorderableArray(iterator.name)) { ReorderableListGUI.Title(new GUIContent(iterator.displayName, iterator.tooltip)); ReorderableListGUI.ListField(iterator); } else { EditorGUILayout.PropertyField(iterator, true, new GUILayoutOption[0]); } } serializedObject.ApplyModifiedProperties(); }