public static System.Reflection.MethodInfo?GetRemoveMethod(this System.Reflection.EventInfo eventInfo, bool nonPublic) { throw null; }
public static System.Reflection.MethodInfo GetRaiseMethod(this System.Reflection.EventInfo eventInfo, bool nonPublic) => throw null;
protected HandlerNotFoundException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(info, context) { handler_name = info.GetString ("HandlerName"); signal_name = info.GetString ("SignalName"); evnt = info.GetValue ("Event", typeof (System.Reflection.EventInfo)) as System.Reflection.EventInfo; delegate_type = info.GetValue ("DelegateType", typeof (Type)) as Type; }
public static System.Reflection.MethodInfo GetAddMethod(System.Reflection.EventInfo eventInfo, bool nonPublic) { throw null; }
internal EventInfoImpl(System.Reflection.EventInfo @event) { Debug.Assert(@event != null); this.Event = @event; }
public HandlerNotFoundException(string handler_name, string signal_name, System.Reflection.EventInfo evnt, Type delegate_type, Exception inner) : base("No handler " + handler_name + " found for signal " + signal_name, inner) { this.handler_name = handler_name; this.signal_name = signal_name; this.evnt = evnt; this.delegate_type = delegate_type; }
public compiled_event(System.Reflection.EventInfo ei) { _ei = ei; }
public DeleEvent(object source, System.Reflection.EventInfo _event) { this.source = source; this._event = _event; }
public static System.Reflection.MethodInfo GetRaiseMethod(this System.Reflection.EventInfo eventInfo) { return(default(System.Reflection.MethodInfo)); }
public static System.Reflection.MethodInfo GetRemoveMethod(this System.Reflection.EventInfo eventInfo, bool nonPublic) { return(default(System.Reflection.MethodInfo)); }
public ComAwareEventInfo(Type type, string eventName) { _innerEventInfo = type.GetEvent(eventName); }
/// <summary> /// Draw the GUI. /// </summary> public override void OnInspectorGUI() { myTarget = (EventResponder)target; GameObject sender = (GameObject)EditorGUILayout.ObjectField(new GUIContent("Sender", "Add the Game Object that holds the target component."), myTarget.sender, typeof(GameObject), true); if (sender != myTarget.sender) { myTarget.sender = sender; if (myTarget.sender != null) { types = GetComponentsOnGameObject(myTarget.sender); } } if (myTarget.sender == null) { myTarget.sender = myTarget.gameObject; } if (myTarget.sender != null) { string typeName = null; if (types == null) { types = GetComponentsOnGameObject(myTarget.sender); } int typeIndex = System.Array.IndexOf(types, myTarget.typeName); if (typeIndex == -1 || typeIndex >= types.Length) { typeIndex = 0; } if (types != null && types.Length > 0) { typeName = types[EditorGUILayout.Popup("Component", typeIndex, types)]; } else { EditorGUILayout.HelpBox("No components found on this GameObject.", MessageType.Info); } if (typeName != myTarget.typeName && typeName != null) { myTarget.typeName = typeName; if (myTarget.typeName != null) { events = GetEventNamesForType(myTarget.typeName); } } if (myTarget.typeName != null && myTarget.typeName.Length > 0) { if (events == null) { events = GetEventNamesForType(myTarget.typeName); } int eventIndex = System.Array.IndexOf(events, myTarget.eventName); if (eventIndex == -1 || eventIndex >= events.Length) { eventIndex = 0; } if (events != null && events.Length > 0) { string name = events[EditorGUILayout.Popup("Event", eventIndex, events)]; if (name != myTarget.eventName || parameterType == null) { myTarget.eventName = name; //try //{ type = myTarget.GetType().Assembly.GetType(this.GetType().Namespace + "." + typeName); eventInfo = type.GetEvent(myTarget.eventName); parameterType = eventInfo.EventHandlerType.GetMethod("Invoke").GetParameters()[1].ParameterType; //} //catch (System.Exception ex) { // Debug.Log (ex.Message); //} } // Animation event if (parameterType != null && parameterType.IsAssignableFrom(typeof(AnimationEventArgs))) { myTarget.animationStateFilter = (AnimationState)EditorGUILayout.EnumPopup(new GUIContent("Animation State", "The animation state which will trigger this event response, use NONE for any state"), myTarget.animationStateFilter); } // Damage event if (parameterType != null && parameterType.IsAssignableFrom(typeof(DamageInfoEventArgs))) { myTarget.damageTypeFilter = (DamageType)EditorGUILayout.EnumPopup(new GUIContent("Damage Type", "The damage type which will trigger this event response, use NONE for any type"), myTarget.damageTypeFilter); } // Button event if (parameterType != null && parameterType.IsAssignableFrom(typeof(ButtonEventArgs))) { myTarget.buttonStateFilter = (ButtonState)EditorGUILayout.EnumPopup(new GUIContent("Button State", "The button state which triggers this response, use ANY for any type"), myTarget.buttonStateFilter); } // Phase event if (parameterType != null && parameterType.IsAssignableFrom(typeof(PhaseEventArgs))) { myTarget.stringFilter = EditorGUILayout.TextField(new GUIContent("Phase", "Name of the phase or empty string for any phase."), myTarget.stringFilter); } // State event if (parameterType != null && parameterType.IsAssignableFrom(typeof(StateEventArgs))) { myTarget.stringFilter = EditorGUILayout.TextField(new GUIContent("State", "Name of the state or empty string for any state."), myTarget.stringFilter); } // Attack event if (parameterType != null && parameterType.IsAssignableFrom(typeof(AttackEventArgs))) { myTarget.stringFilter = EditorGUILayout.TextField(new GUIContent("Attack", "Name of the attack or empty string for any attack."), myTarget.stringFilter); } // Extra Damage event if (parameterType != null && parameterType.IsAssignableFrom(typeof(ExtraDamageInfoEventArgs))) { myTarget.stringFilter = EditorGUILayout.TextField(new GUIContent("Attack", "Name of the attack or empty string for any attack."), myTarget.stringFilter); } // Item event if (parameterType != null && parameterType.IsAssignableFrom(typeof(ItemEventArgs))) { myTarget.stringFilter = EditorGUILayout.TextField(new GUIContent("Item Type", "Name of the item type or empty for any item."), myTarget.stringFilter); myTarget.intFilter = EditorGUILayout.IntField(new GUIContent("Amount", "Minimum amount that must be in the inventory."), myTarget.intFilter); } } else { EditorGUILayout.HelpBox("No events found on this component.", MessageType.Info); } } } if (myTarget.actions != null) { for (int i = 0; i < myTarget.actions.Length; i++) { EditorGUILayout.BeginVertical("HelpBox"); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (i == 0) { GUI.enabled = false; } if (GUILayout.Button("Move Up", EditorStyles.miniButtonLeft)) { EventResponse tmp = myTarget.actions[i - 1]; myTarget.actions[i - 1] = myTarget.actions[i]; myTarget.actions[i] = tmp; EditorUtility.SetDirty(target); break; } GUI.enabled = true; if (i == myTarget.actions.Length - 1) { GUI.enabled = false; } if (GUILayout.Button("Move Down", EditorStyles.miniButtonRight)) { EventResponse tmp = myTarget.actions[i + 1]; myTarget.actions[i + 1] = myTarget.actions[i]; myTarget.actions[i] = tmp; EditorUtility.SetDirty(target); break; } GUI.enabled = true; // Remove GUILayout.Space(4); bool removed = false; if (GUILayout.Button("Remove", EditorStyles.miniButton)) { myTarget.actions = myTarget.actions.Where(a => a != myTarget.actions[i]).ToArray(); EditorUtility.SetDirty(target); removed = true; } GUILayout.EndHorizontal(); if (!removed) { RenderAction(myTarget, myTarget, myTarget.actions[i]); } EditorGUILayout.EndVertical(); } } EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); // Add new actions if (GUILayout.Button("Add Action")) { if (myTarget.actions == null) { myTarget.actions = new EventResponse[1]; } else { // Copy and grow array EventResponse[] tmpActions = myTarget.actions; myTarget.actions = new EventResponse[tmpActions.Length + 1]; System.Array.Copy(tmpActions, myTarget.actions, tmpActions.Length); } } EditorGUILayout.EndHorizontal(); }
public HandlerNotFoundException(string handler_name, string signal_name, System.Reflection.EventInfo evnt, Type delegate_type) : this(handler_name, signal_name, evnt, delegate_type, null) { }
public static System.Reflection.MethodInfo GetRemoveMethod(this System.Reflection.EventInfo eventInfo) => throw null;
public ExternalEvent(TypeSystemServices tagManager, System.Reflection.EventInfo event_) { _typeSystemServices = tagManager; _event = event_; }
/// <summary> /// AddEventHandler /// </summary> protected override void AddEventHandler(System.Reflection.EventInfo eventInfo, object target, System.Delegate handler) { eventInfo.AddEventHandler(target, handler); }
public virtual System.Reflection.EventInfo GetEventInfo() { if(this.eventInfo == null) { TypeNode tn = this.DeclaringType; if(tn == null) return null; Type t = tn.GetRuntimeType(); if(t == null) return null; System.Reflection.BindingFlags flags = System.Reflection.BindingFlags.DeclaredOnly; if(this.IsPublic) flags |= System.Reflection.BindingFlags.Public; else flags |= System.Reflection.BindingFlags.NonPublic; if(this.IsStatic) flags |= System.Reflection.BindingFlags.Static; else flags |= System.Reflection.BindingFlags.Instance; this.eventInfo = t.GetEvent(this.Name.ToString(), flags); } return this.eventInfo; }
/// <summary> /// obj の e で指定したイベントに OnChanged を呼び出す関数をフックします。 /// <list type="table"> /// <listheader>対応している EventHandler デリゲートの一覧</listheader> /// <item><see cref="System.EventHandler"/></item> /// <item><see cref="System.Windows.Forms.ColumnClickEventHandler"/></item> /// <item><see cref="System.Windows.Forms.ContentsResizedEventHandler"/></item> /// <item><see cref="System.Windows.Forms.ControlEventHandler"/></item> /// <item><see cref="System.Windows.Forms.ConvertEventHandler"/></item> /// <item><see cref="System.Windows.Forms.DateBoldEventHandler"/></item> /// <item><see cref="System.Windows.Forms.DateRangeEventHandler"/></item> /// <item><see cref="System.Windows.Forms.DragEventHandler"/></item> /// <item><see cref="System.Windows.Forms.DrawItemEventHandler"/></item> /// <item><see cref="System.Windows.Forms.GiveFeedbackEventHandler"/></item> /// <item><see cref="System.Windows.Forms.HelpEventHandler"/></item> /// <item><see cref="System.Windows.Forms.InputLanguageChangedEventHandler"/></item> /// <item><see cref="System.Windows.Forms.InputLanguageChangingEventHandler"/></item> /// <item><see cref="System.Windows.Forms.InvalidateEventHandler"/></item> /// <item><see cref="System.Windows.Forms.ItemChangedEventHandler"/></item> /// <item><see cref="System.Windows.Forms.ItemCheckEventHandler"/></item> /// <item><see cref="System.Windows.Forms.ItemDragEventHandler"/></item> /// <item><see cref="System.Windows.Forms.KeyEventHandler"/></item> /// <item><see cref="System.Windows.Forms.KeyPressEventHandler"/></item> /// <item><see cref="System.Windows.Forms.LabelEditEventHandler"/></item> /// <item><see cref="System.Windows.Forms.LayoutEventHandler"/></item> /// <item><see cref="System.Windows.Forms.LinkClickedEventHandler"/></item> /// <item><see cref="System.Windows.Forms.LinkLabelLinkClickedEventHandler"/></item> /// <item><see cref="System.Windows.Forms.MeasureItemEventHandler"/></item> /// <item><see cref="System.Windows.Forms.MouseEventHandler"/></item> /// <item><see cref="System.Windows.Forms.NavigateEventHandler"/></item> /// <item><see cref="System.Windows.Forms.NodeLabelEditEventHandler"/></item> /// <item><see cref="System.Windows.Forms.PaintEventHandler"/></item> /// <item><see cref="System.Windows.Forms.PropertyTabChangedEventHandler"/></item> /// <item><see cref="System.Windows.Forms.PropertyValueChangedEventHandler"/></item> /// <item><see cref="System.Windows.Forms.QueryAccessibilityHelpEventHandler"/></item> /// <item><see cref="System.Windows.Forms.QueryContinueDragEventHandler"/></item> /// <item><see cref="System.Windows.Forms.ScrollEventHandler"/></item> /// <item><see cref="System.Windows.Forms.SelectedGridItemChangedEventHandler"/></item> /// <item><see cref="System.Windows.Forms.SplitterEventHandler"/></item> /// <item><see cref="System.Windows.Forms.StatusBarDrawItemEventHandler"/></item> /// <item><see cref="System.Windows.Forms.StatusBarPanelClickEventHandler"/></item> /// <item><see cref="System.Windows.Forms.ToolBarButtonClickEventHandler"/></item> /// <item><see cref="System.Windows.Forms.TreeViewCancelEventHandler"/></item> /// <item><see cref="System.Windows.Forms.TreeViewEventHandler"/></item> /// <item><see cref="System.Windows.Forms.UICuesEventHandler"/></item> /// <item><see cref="System.Windows.Forms.UpDownEventHandler"/></item> /// </list> /// </summary> protected virtual void HookEvent(object obj, System.Reflection.EventInfo e) { System.Type t = e.EventHandlerType; switch (t.GUID.GetHashCode() & 0x7fffffff) { case 0x1D95059F: if (t != typeof(System.EventHandler)) { goto default; } e.AddEventHandler(obj, new System.EventHandler(this.obj_Event)); break; case 0x55BA541E: if (t != typeof(System.Windows.Forms.ColumnClickEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.ColumnClickEventHandler(this.obj_ColumnClick)); break; case 0x4E74E8C7: if (t != typeof(System.Windows.Forms.ContentsResizedEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.ContentsResizedEventHandler(this.obj_ContentsResized)); break; case 0x2A44964C: if (t != typeof(System.Windows.Forms.ControlEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.ControlEventHandler(this.obj_Control)); break; case 0x66D696A2: if (t != typeof(System.Windows.Forms.ConvertEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.ConvertEventHandler(this.obj_Convert)); break; case 0x446EC337: if (t != typeof(System.Windows.Forms.DateBoldEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.DateBoldEventHandler(this.obj_DateBold)); break; case 0x38613C19: if (t != typeof(System.Windows.Forms.DateRangeEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.DateRangeEventHandler(this.obj_DateRange)); break; case 0x20A212A4: if (t != typeof(System.Windows.Forms.DragEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.DragEventHandler(this.obj_Drag)); break; case 0x4E11F670: if (t != typeof(System.Windows.Forms.DrawItemEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.DrawItemEventHandler(this.obj_DrawItem)); break; case 0x10250BF6: if (t != typeof(System.Windows.Forms.GiveFeedbackEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.GiveFeedbackEventHandler(this.obj_GiveFeedback)); break; case 0x18225CB1: if (t != typeof(System.Windows.Forms.HelpEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.HelpEventHandler(this.obj_Help)); break; case 0x29F46229: if (t != typeof(System.Windows.Forms.InputLanguageChangedEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.InputLanguageChangedEventHandler(this.obj_InputLanguageChanged)); break; case 0x42BF2A43: if (t != typeof(System.Windows.Forms.InputLanguageChangingEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.InputLanguageChangingEventHandler(this.obj_InputLanguageChanging)); break; case 0x5DB1430A: if (t != typeof(System.Windows.Forms.InvalidateEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.InvalidateEventHandler(this.obj_Invalidate)); break; case 0x02E89CB8: if (t != typeof(System.Windows.Forms.ItemChangedEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.ItemChangedEventHandler(this.obj_ItemChanged)); break; case 0x0517F0C8: if (t != typeof(System.Windows.Forms.ItemCheckEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.ItemCheckEventHandler(this.obj_ItemCheck)); break; case 0x1D3727D9: if (t != typeof(System.Windows.Forms.ItemDragEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.ItemDragEventHandler(this.obj_ItemDrag)); break; case 0x53B8A498: if (t != typeof(System.Windows.Forms.KeyEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.KeyEventHandler(this.obj_Key)); break; case 0x5C06F652: if (t != typeof(System.Windows.Forms.KeyPressEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.KeyPressEventHandler(this.obj_KeyPress)); break; case 0x204BCE44: if (t != typeof(System.Windows.Forms.LabelEditEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.LabelEditEventHandler(this.obj_LabelEdit)); break; case 0x71ACB009: if (t != typeof(System.Windows.Forms.LayoutEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.LayoutEventHandler(this.obj_Layout)); break; case 0x6FAEA402: if (t != typeof(System.Windows.Forms.LinkClickedEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.LinkClickedEventHandler(this.obj_LinkClicked)); break; case 0x0396D3CE: if (t != typeof(System.Windows.Forms.LinkLabelLinkClickedEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.obj_LinkLabelLinkClicked)); break; case 0x2797C235: if (t != typeof(System.Windows.Forms.MeasureItemEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.MeasureItemEventHandler(this.obj_MeasureItem)); break; case 0x580DBFE2: if (t != typeof(System.Windows.Forms.MouseEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.MouseEventHandler(this.obj_Mouse)); break; case 0x0F44AE91: if (t != typeof(System.Windows.Forms.NavigateEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.NavigateEventHandler(this.obj_Navigate)); break; case 0x6EDAE89F: if (t != typeof(System.Windows.Forms.NodeLabelEditEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.NodeLabelEditEventHandler(this.obj_NodeLabelEdit)); break; case 0x6FEF62D4: if (t != typeof(System.Windows.Forms.PaintEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.PaintEventHandler(this.obj_Paint)); break; case 0x7F431C0A: if (t != typeof(System.Windows.Forms.PropertyTabChangedEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.PropertyTabChangedEventHandler(this.obj_PropertyTabChanged)); break; case 0x0FC32FB2: if (t != typeof(System.Windows.Forms.PropertyValueChangedEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.PropertyValueChangedEventHandler(this.obj_PropertyValueChanged)); break; case 0x0CDDEA26: if (t != typeof(System.Windows.Forms.QueryAccessibilityHelpEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.QueryAccessibilityHelpEventHandler(this.obj_QueryAccessibilityHelp)); break; case 0x44489E3B: if (t != typeof(System.Windows.Forms.QueryContinueDragEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.QueryContinueDragEventHandler(this.obj_QueryContinueDrag)); break; case 0x4DF02610: if (t != typeof(System.Windows.Forms.ScrollEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.ScrollEventHandler(this.obj_Scroll)); break; case 0x497C3C54: if (t != typeof(System.Windows.Forms.SelectedGridItemChangedEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.SelectedGridItemChangedEventHandler(this.obj_SelectedGridItemChanged)); break; case 0x64F16DF0: if (t != typeof(System.Windows.Forms.SplitterEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.SplitterEventHandler(this.obj_Splitter)); break; case 0x7936C631: if (t != typeof(System.Windows.Forms.StatusBarDrawItemEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.StatusBarDrawItemEventHandler(this.obj_StatusBarDrawItem)); break; case 0x3DE904A9: if (t != typeof(System.Windows.Forms.StatusBarPanelClickEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.StatusBarPanelClickEventHandler(this.obj_StatusBarPanelClick)); break; case 0x0DF6A2B1: if (t != typeof(System.Windows.Forms.ToolBarButtonClickEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.ToolBarButtonClickEventHandler(this.obj_ToolBarButtonClick)); break; case 0x4CC730F7: if (t != typeof(System.Windows.Forms.TreeViewCancelEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.TreeViewCancelEventHandler(this.obj_TreeViewCancel)); break; case 0x6D127419: if (t != typeof(System.Windows.Forms.TreeViewEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.TreeViewEventHandler(this.obj_TreeView)); break; case 0x1C7F90A6: if (t != typeof(System.Windows.Forms.UICuesEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.UICuesEventHandler(this.obj_UICues)); break; case 0x6903E1C8: if (t != typeof(System.Windows.Forms.UpDownEventHandler)) { goto default; } e.AddEventHandler(obj, new System.Windows.Forms.UpDownEventHandler(this.obj_UpDown)); break; default: #if NET1_1 throw System.ApplicationException("指定した種類のイベントには対応していません。"); #else e.AddEventHandler(obj, this.CreateEventHandler(e)); #endif break; } }
/// <summary> /// PropertyAccessor を PropertyInfo と EventInfo を使用して初期化します。 /// </summary> /// <param name="obj">対象のオブジェクトを指定します。</param> /// <param name="p">オブジェクトの値として使用するプロパティを指定します。</param> /// <param name="e">オブジェクトが変更された事を検出する為の event を指定します。</param> public PropertyAccessor(object obj, System.Reflection.PropertyInfo p, System.Reflection.EventInfo e) { this.p = p; this.HookEvent(this.obj = obj, this.e = e); }
public HandlerNotFoundException(string message, string handler_name, string signal_name, System.Reflection.EventInfo evnt, Type delegate_type) : base((message != null) ? message : "No handler " + handler_name + " found for signal " + signal_name, null) { this.handler_name = handler_name; this.signal_name = signal_name; this.evnt = evnt; this.delegate_type = delegate_type; }
public static System.Reflection.MethodInfo?GetRaiseMethod(this System.Reflection.EventInfo eventInfo) { throw null; }
/// <summary> /// Draw the GUI. /// </summary> public override void OnInspectorGUI() { myTarget = (EventResponder)target; GameObject sender = (GameObject)EditorGUILayout.ObjectField(new GUIContent("Sender", "Add the Game Object that holds the target component."), myTarget.sender, typeof(GameObject), true); if (sender != myTarget.sender) { myTarget.sender = sender; if (myTarget.sender != null) { types = GetComponentsOnGameObject(myTarget.sender); } } if (myTarget.sender == null) { myTarget.sender = myTarget.gameObject; } if (myTarget.sender != null) { string typeName = null; if (types == null) { types = GetComponentsOnGameObject(myTarget.sender); } int typeIndex = System.Array.IndexOf(types, myTarget.typeName); if (typeIndex == -1 || typeIndex >= types.Length) { typeIndex = 0; } if (types != null && types.Length > 0) { typeName = types[EditorGUILayout.Popup("Component", typeIndex, types)]; } else { EditorGUILayout.HelpBox("No components found on this GameObject.", MessageType.Info); } if (typeName != myTarget.typeName && typeName != null) { myTarget.typeName = typeName; if (myTarget.typeName != null) { events = GetEventNamesForType(myTarget.typeName); } } if (myTarget.typeName != null && myTarget.typeName.Length > 0) { if (events == null) { events = GetEventNamesForType(myTarget.typeName); } int eventIndex = System.Array.IndexOf(events, myTarget.eventName); if (eventIndex == -1 || eventIndex >= events.Length) { eventIndex = 0; } if (events != null && events.Length > 0) { string name = events[EditorGUILayout.Popup("Event", eventIndex, events)]; if (name != myTarget.eventName || parameterType == null) { myTarget.eventName = name; //try //{ type = myTarget.GetType().Assembly.GetType(this.GetType().Namespace + "." + typeName); eventInfo = type.GetEvent(myTarget.eventName); parameterType = eventInfo.EventHandlerType.GetMethod("Invoke").GetParameters()[1].ParameterType; //} //catch (System.Exception ex) { // Debug.Log (ex.Message); //} } // TODO Add filters } else { EditorGUILayout.HelpBox("No events found on this component.", MessageType.Info); } } } if (myTarget.actions != null) { for (int i = 0; i < myTarget.actions.Length; i++) { RenderAction(myTarget, myTarget, myTarget.actions[i]); } } GUILayout.Box("", GUILayout.ExpandWidth(true), GUILayout.Height(1)); EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); // Add new actions if (GUILayout.Button("Add Action")) { if (myTarget.actions == null) { myTarget.actions = new EventResponse[1]; } else { // Copy and grow array EventResponse[] tmpActions = myTarget.actions; myTarget.actions = new EventResponse[tmpActions.Length + 1]; System.Array.Copy(tmpActions, myTarget.actions, tmpActions.Length); } } EditorGUILayout.EndHorizontal(); }