using UnityEditor; using UnityEditorInternal; using UnityEngine; using System.Collections; using System.Collections.Generic; namespace Fungus { [CustomEditor (typeof(EventHandler), true)] public class EventHandlerEditor : Editor { public virtual void DrawInspectorGUI() { // Users should not be able to change the MonoScript for the command using the usual Script field. // Doing so could cause sequence.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; } EditorGUILayout.PropertyField(iterator, true, new GUILayoutOption[0]); } EventHandler t = target as EventHandler; EventHandlerInfoAttribute info = EventHandler.GetEventHandlerInfo(t.GetType()); if (info != null && info.HelpText.Length > 0) { EditorGUILayout.HelpBox(info.HelpText, MessageType.Info); } serializedObject.ApplyModifiedProperties(); } } }