Exemplo n.º 1
0
        internal void Events_ContactRemoved(BEPUphysics.BroadPhaseEntries.MobileCollidables.EntityCollidable sender, BEPUphysics.BroadPhaseEntries.Collidable other, BEPUphysics.NarrowPhaseSystems.Pairs.CollidablePairHandler pair, BEPUphysics.CollisionTests.ContactData contact)
        {
            var collision = GenerateCollision(sender, other, pair, contact);

            foreach (var m in this.gameObject.GetComponents <MonoBehaviour>())
            {
                m.OnCollisionExit(collision);
            }
        }
Exemplo n.º 2
0
        private Collision GenerateCollision(BEPUphysics.BroadPhaseEntries.MobileCollidables.EntityCollidable sender, BEPUphysics.BroadPhaseEntries.Collidable other, BEPUphysics.NarrowPhaseSystems.Pairs.CollidablePairHandler pair, BEPUphysics.CollisionTests.ContactData contact)
        {
            var otherEntity   = other as BEPUphysics.BroadPhaseEntries.MobileCollidables.EntityCollidable;
            var otherCollider = otherEntity.Entity.Tag as Collider;

            var collision = new Collision()
            {
                gameObject = otherCollider.gameObject,
                contacts   = new Collision.ContactPoint[1],
            };

            collision.contacts[0] = new Collision.ContactPoint()
            {
                normal        = contact.Normal,
                point         = contact.Position,
                otherCollider = otherCollider,
                thisCollider  = this.gameObject.GetComponent <Collider>(),
            };
            return(collision);
        }