public void OnCollisionHandler(CollisionInformation e) { for (int i = 0; i < lastActiveIndex; i++) { Invoke("SetGoActive", active_value[i]); } for (int i = 0; i < lastInactiveIndex; i++) { Invoke("SetGoInactive", inactive_value[i]); } var handler = CollisionEnter; if (handler != null) { handler(this, e); } if (InstanceBehaviour == DeactivationEnum.Deactivate && !deactivatedIsWait) { deactivatedIsWait = true; Invoke("Deactivate", DeactivateTimeDelay); } if (InstanceBehaviour == DeactivationEnum.DestroyAfterCollision) { Destroy(gameObject, DestroyTimeDelay); } }
private bool onCollision(Fixture fixtureA, Fixture fixtureB, FarseerPhysics.Dynamics.Contacts.Contact contact) { BaseShape shapeA = fixtureA.UserData as BaseShape; BaseShape shapeB = fixtureB.UserData as BaseShape; CollisionInformation info = new CollisionInformation() { ShapeA = shapeA, ShapeB = shapeB, Friction = contact.Friction, Restitution = contact.Restitution, TangentSpeed = contact.TangentSpeed }; shapeA.Physics.TriggerCollide(info); shapeB.Physics.TriggerCollide(info); Collision?.Invoke(info); return(true); }
private void HandleRotation() { if (Rotation == 0) { return; } exactBounds.RotationOffset = new Vector2(Width / 2, Height / 2); exactBounds.Rotation = Rotation; CollisionInformation collisionInformation = exactBounds.GetCollisionInformation(); float xMin = VertexFinder(collisionInformation.Vertices, "x", "minimum"); float xMax = VertexFinder(collisionInformation.Vertices, "x", "maximum"); float yMin = VertexFinder(collisionInformation.Vertices, "y", "minimum"); float yMax = VertexFinder(collisionInformation.Vertices, "y", "maximum"); float width = xMax - xMin; float height = yMax - yMin; broadBounds.SetBounds(xMin, yMin, width, height); }
public void endContact(ref CollisionInformation collisionInformation) { }
public void beginContact(ref CollisionInformation collisionInformation) { }
public void instantaniousParticleContact(ref CollisionInformation collisionInformation, out EnumParticleCollisionResponse particleResponse) { particleResponse = EnumParticleCollisionResponse.ABSORB; }
public void instantaniousContact(ref CollisionInformation collisionInformation) { }