private void SaveTriggerExitData(EventManager.EDTriggerExit event1, EventManager.EDTriggerExit event2) { // create collision data TriggerStayExitDataBundle data1 = new TriggerStayExitDataBundle(event1); TriggerStayExitDataBundle data2 = new TriggerStayExitDataBundle(event2); // create the internal data TriggerStayExitDataInternal internalData = new TriggerStayExitDataInternal(data1, data2); internalTriggerStayExitData.Add(internalData); // save collision enter data for both objects SaveDataHelper <TriggerStayExitDataInternal, TriggerStayExitDataBundle, TriggerStayExitData>(event1.interactionCont, event2.interactionCont, internalData, data1, data2, AddTriggerExitDataToInfoBundle); SaveDataHelper <TriggerStayExitDataInternal, TriggerStayExitDataBundle, TriggerStayExitData>(event2.interactionCont, event1.interactionCont, internalData, data2, data1, AddTriggerExitDataToInfoBundle); }
public void OnTriggerExitEvent(EventManager.EDTriggerExit eventData) { OrganizeEvent(eventData.interactionCont, eventData.otherInteractionCont, eventData, triggerExitEventData, TriggerExitMatches, SaveTriggerExitData); }
private bool TriggerExitMatches(EventManager.EDTriggerExit coll1, EventManager.EDTriggerExit coll2) { return(coll1.collider == coll2.eventCollider && coll2.collider == coll1.eventCollider); }
private void CompleteUnmatchedEvents() { // report unmatched events // TODO : option to pass dummy data with unmatched event to complete it foreach (KeyValuePair <int, List <EventManager.EDCollisionEnter> > eventList in collEnterEventData) { foreach (EventManager.EDCollisionEnter eventData in eventList.Value) { EventManager.EDCollisionEnter flippedEventData = new EventManager.EDCollisionEnter(); flippedEventData.collider = eventData.collider; flippedEventData.interactionCont = eventData.otherInteractionCont; flippedEventData.otherInteractionCont = eventData.interactionCont; flippedEventData.collisionCont = eventData.otherInteractionCont.GetRbodyCollCont(); flippedEventData.collision2D = eventData.collision2D; flippedEventData.momentumCalcRequired = eventData.momentumCalcRequired; flippedEventData.flippedColl = true; // if either collider is null do not save if (eventData.collider == null || flippedEventData.collider == null) { return; } SaveCollisionEnterData(eventData, flippedEventData); } } foreach (KeyValuePair <int, List <EventManager.EDCollisionStay> > eventList in collStayEventData) { foreach (EventManager.EDCollisionStay eventData in eventList.Value) { EventManager.EDCollisionStay flippedEventData = new EventManager.EDCollisionStay(); flippedEventData.collider = eventData.collider; flippedEventData.interactionCont = eventData.otherInteractionCont; flippedEventData.otherInteractionCont = eventData.interactionCont; flippedEventData.collisionCont = eventData.otherInteractionCont.GetRbodyCollCont(); flippedEventData.collision2D = eventData.collision2D; flippedEventData.flippedColl = true; SaveCollisionStayData(eventData, flippedEventData); } } foreach (KeyValuePair <int, List <EventManager.EDCollisionExit> > eventList in collExitEventData) { foreach (EventManager.EDCollisionExit eventData in eventList.Value) { EventManager.EDCollisionExit flippedEventData = new EventManager.EDCollisionExit(); flippedEventData.collider = eventData.collider; flippedEventData.interactionCont = eventData.otherInteractionCont; flippedEventData.otherInteractionCont = eventData.interactionCont; flippedEventData.collisionCont = eventData.otherInteractionCont.GetRbodyCollCont(); flippedEventData.collision2D = eventData.collision2D; flippedEventData.flippedColl = true; SaveCollisionExitData(eventData, flippedEventData); } } foreach (KeyValuePair <int, List <EventManager.EDTriggerEnter> > eventList in triggerEnterEventData) { foreach (EventManager.EDTriggerEnter eventData in eventList.Value) { EventManager.EDTriggerEnter flippedEventData = new EventManager.EDTriggerEnter(); flippedEventData.collider = eventData.eventCollider; flippedEventData.eventCollider = eventData.collider; flippedEventData.interactionCont = eventData.otherInteractionCont; flippedEventData.otherInteractionCont = eventData.interactionCont; flippedEventData.collisionCont = eventData.otherInteractionCont.GetRbodyCollCont(); SaveTriggerEnterData(eventData, flippedEventData); } } foreach (KeyValuePair <int, List <EventManager.EDTriggerStay> > eventList in triggerStayEventData) { foreach (EventManager.EDTriggerStay eventData in eventList.Value) { EventManager.EDTriggerStay flippedEventData = new EventManager.EDTriggerStay(); flippedEventData.collider = eventData.eventCollider; flippedEventData.eventCollider = eventData.collider; flippedEventData.interactionCont = eventData.otherInteractionCont; flippedEventData.otherInteractionCont = eventData.interactionCont; flippedEventData.collisionCont = eventData.otherInteractionCont.GetRbodyCollCont(); SaveTriggerStayData(eventData, flippedEventData); } } foreach (KeyValuePair <int, List <EventManager.EDTriggerExit> > eventList in triggerExitEventData) { foreach (EventManager.EDTriggerExit eventData in eventList.Value) { EventManager.EDTriggerExit flippedEventData = new EventManager.EDTriggerExit(); flippedEventData.collider = eventData.eventCollider; flippedEventData.eventCollider = eventData.collider; flippedEventData.interactionCont = eventData.otherInteractionCont; flippedEventData.otherInteractionCont = eventData.interactionCont; flippedEventData.collisionCont = eventData.otherInteractionCont.GetRbodyCollCont(); SaveTriggerExitData(eventData, flippedEventData); } } }
public TriggerStayExitDataBundle(EventManager.EDTriggerExit triggerEvent) : base(triggerEvent) { this.callback = triggerEvent.triggerCallback; }
public TriggerDataBundle(EventManager.EDTriggerExit triggerEvent) { eventCollider = triggerEvent.eventCollider; collisionCont = triggerEvent.collisionCont; interactionCont = triggerEvent.interactionCont; }