public static void Collide(PhysicsObject A, PhysicsObject B) { bool aMoving = A.isMoving; bool bMoving = B.isMoving; if (!aMoving && !bMoving) { return; } var colliderA = A.colliders; var colliderB = B.colliders; foreach (PhysicsCollider colA in colliderA) { foreach (PhysicsCollider colB in colliderB) { if (Collide(colA, colB)) { A.CallOnCollide(colB); B.CallOnCollide(colA); } } } }