public void CheckAndDistributeCollision() { if (!Active) { return; } CurrentCollisionPair = this; if (CheckHeight()) { if (CheckCollision()) { if (IsColliding == false) { if (Body1.OnContactEnter.IsNotNull()) { Body1.OnContactEnter(Body2); } if (Body2.OnContactEnter.IsNotNull()) { Body2.OnContactEnter(Body1); } IsColliding = true; } else { } DistributeCollision(); } else { if (IsColliding) { if (Body1.OnContactExit.IsNotNull()) { Body1.OnContactExit(Body2); } if (Body2.OnContactExit.IsNotNull()) { Body2.OnContactExit(Body1); } IsColliding = false; } else { } } } }
public void CheckAndDistributeCollision() { if (!Active) { return; } if (SamePartition && CheckCollision()) { SamePartition = false; if (!IsColliding) { if (Body1.OnContactEnter != null) { Body1.OnContactEnter(Body2); } if (Body2.OnContactEnter != null) { Body2.OnContactEnter(Body1); } IsColliding = true; } else { } DistributeCollision(); } else { if (IsColliding) { if (Body1.OnContactExit != null) { Body1.OnContactExit(Body2); } if (Body2.OnContactExit != null) { Body2.OnContactExit(Body1); } IsColliding = false; } else { } } }