public CollisionDetails(Collider colOne, Collider colTwo)
 {
     this.areaOne = colOne.MyArea;
     this.areaTwo = colTwo.MyArea;
     this.colOne  = colOne;
     this.colTwo  = colTwo;
 }
        private void OnCollisionEnded(EventData_Collision eventData)
        {
            CleanCurrentCollisions();

            bool areaOneIsThis  = eventData.ColliderOne.MyArea.InstanceID == this.InstanceID;
            bool colOneIsInArea = _areaColliders.Contains(eventData.ColliderOne);
            bool colTwoIsInArea = _areaColliders.Contains(eventData.ColliderTwo);

            if (!IsValidCollision(colOneIsInArea, colTwoIsInArea))
            {
                return;
            }

            CollisionArea thisArea        = this;
            CollisionArea hittingArea     = areaOneIsThis ? eventData.ColliderTwo.MyArea : eventData.ColliderOne.MyArea;
            Collider      hitCollider     = colOneIsInArea ? eventData.ColliderOne : eventData.ColliderTwo;
            Collider      hittingCollider = colOneIsInArea ? eventData.ColliderTwo : eventData.ColliderOne;

            _currentCollisions.Remove(hittingCollider);
            bool isLastCollider = !_currentCollisions.Contains(hittingCollider);

            if (isLastCollider || !collidersOnlyExitOnLast)
            {
                SendCollisionAreaEnded(thisArea, hittingArea, hitCollider, hittingCollider);
            }
        }
        private void SendCollisionAreaEnded(CollisionArea thisArea, CollisionArea hittingArea, Collider hitCollider, Collider hittingCollider)
        {
                        #if DebugExit
            DebugLog.Simple("<color=red>Collision Ended</color>\r\nCol One: ", ourCollider, "Col Two: ", hittingCollider);
                        #endif

            EventData_Collision eventData = new EventData_Collision();
            eventData.HitArea         = thisArea;
            eventData.HittingArea     = hittingArea;
            eventData.HitCollider     = hitCollider;
            eventData.HittingCollider = hittingCollider;

            GameManager.Events.Broadcast <EventType_Collision> ((int)EventType_Collision.AreaCollisionEnded, eventData);
        }