// Send Global Event public static void Broadcast(EventMessage em, ref object paramRef) { // delay if (em.delayTime.x > 0 && em.delayTime.y > 0) { EventTimer.AddTimer(em, em.delayTime, em.useTimeScale); } else { // clear delay em.delayTime = Vector2.zero; EventInfo ei = GetEventInfo(em.eventID); if (ei != null && ei.m_delegate != null) { ei.m_delegate(em, ref paramRef); } } return; }
// Send Object Event public static void SendObjectEvent(EventMessage em, ref object paramRef) { if (em.targetObj) { if (em.delayTime.x > 0 && em.delayTime.y > 0) { EventTimer.AddTimer(em, em.delayTime, em.useTimeScale); } else { // clear delay em.delayTime = Vector2.zero; // Send to object event manager ObjectEventManager[] objManagers = em.targetObj.GetComponentsInChildren <ObjectEventManager>(true); foreach (ObjectEventManager objManager in objManagers) { objManager.SendObjectEvent(em, ref paramRef); } } } return; }