public void PostEvent(string evtName, GameObject obj = null) { EventDelegate value; try { GPEventID evtID = EventNameToID(evtName); if (evtID == GPEventID.Invalid) { throw new KeyNotFoundException(); } if (m_eventMap.TryGetValue(evtID.ID, out value)) { GPEvent evt = new GPEvent(); evt.EventID = evtID; evt.RelatedObject = obj; value(evt); } else { throw new KeyNotFoundException(); } } catch (KeyNotFoundException) { } }
private void StopEvent(GPEvent evt) { if (evt.EventID.Name == _stopEvent) { ActionAtIndex(m_currActionIndex).Stop(); End(); } }
private void EventTrigger(GPEventID id, GameObject relatedObj = null) { GPEvent evt = new GPEvent(); evt.EventID = id; evt.RelatedObject = relatedObj; this.EventTrigger(evt); }
public void EventTrigger(GPEvent evt) { if (!evt.EventID.Equals(_eventID) || Action == null) { return; } CurrentEvent = evt; m_relativeObjectAction._relatedObject = evt.RelatedObject; if (CanTriggerAction()) { TriggerAction(); } }
public void PostRelativeEvent(GameObject postToObj, string evtName, GameObject obj = null) { if (postToObj == null) { throw new NullReferenceException(); } EventDelegate value; try { GPEventID evtID = EventNameToID(evtName); if (evtID == GPEventID.Invalid) { throw new IndexOutOfRangeException(); } EventHandler handlerToTrigger = null; EventHandler[] handlers = postToObj.GetComponents <EventHandler>(); foreach (EventHandler handler in handlers) { if (handler._eventID.Equals(evtID)) { if (handlerToTrigger == null) { handlerToTrigger = handler; } else { Debug.LogError("Several handler listening to " + evtID.Name + " found in object " + postToObj.name + ". Only the first handler will be triggered"); } } } if (handlerToTrigger == null) { Debug.LogWarning("Can not post relative event to " + postToObj.name + ". No event handler listening to " + evtID.Name + " found in object."); return; } if (m_eventMap.TryGetValue(evtID.ID, out value)) { GPEvent evt = new GPEvent(); evt.EventID = evtID; evt.RelatedObject = obj; handlerToTrigger.EventTrigger(evt); } else { throw new KeyNotFoundException(); } } catch (System.Exception e) { Debug.Log("Exception: " + e.Message + " Stack " + e.StackTrace); } }