/// <summary>Constructs and binds a new event.</summary>
 /// <param name="Name">The name of this BindedEvent.</param>
 /// <param name="Trigger">The trigger that causes this event to execute.</param>
 /// <param name="Callback">The method to execute on event trigger.</param>
 /// <param name="ManagerType">The type of audio manager this event is binded to.</param>
 public BindedEvent(string Name, EventTriggerType Trigger, UnityObjectEvent Callback, Type ManagerType)
 {
     EventName        = Name;
     EventTrigger     = Trigger;
     EventCallback    = Callback;
     this.ManagerType = ManagerType;
 }
Exemple #2
0
            /// <summary>Creates and binds a new BindedEvent.</summary>
            /// <returns>The BindedEvent.</returns>
            /// <param name="DesiredTriggerType">The desired trigger type.</param>
            /// <param name="DesiredOverload">The method overload to bind.</param>
            /// <param name="MethodParamaterValues">The values to pass as paramaters to the method overload.</param>
            public BindedEvent CreateAndBindEvent(EventTriggerType DesiredTriggerType, OverloadEventBinder DesiredOverload, object[] MethodParamaterValues)
            {
                //Creates invokable action and name
                UnityAction <object> Callback  = DesiredOverload.CreateInvokableAction((object[])MethodParamaterValues.Clone());
                string           EventName     = DesiredOverload.CreateEventName(MethodParamaterValues);
                UnityObjectEvent CallbackEvent = new UnityObjectEvent();

                UnityEventTools.AddPersistentListener(CallbackEvent, Callback);

                //Binds the event
                return(new BindedEvent(EventName, DesiredTriggerType, CallbackEvent, ClassType));
            }
Exemple #3
0
 /// <summary>
 /// Start listener to an event with extra data
 /// </summary>
 /// <param name="eventName">Name of the event</param>
 /// <param name="action">Action to execute with the extra data</param>
 public static void StartListening(string eventName, UnityAction <object> action)
 {
     if (eventsWithData.TryGetValue(eventName, out UnityObjectEvent auxEvent))
     {
         auxEvent.AddListener(action);
     }
     else
     {
         auxEvent = new UnityObjectEvent();
         auxEvent.AddListener(action);
         eventsWithData.Add(eventName, auxEvent);
     }
 }