private void DetectCollisions() { var collPoint = Vector3.zero; var collNormal = Vector3.zero; for (int i = 0; i < m_Bodies.Count; i++) { for (int j = i + 1; j < m_Bodies.Count; j++) { var b1 = m_Bodies[i]; var b2 = m_Bodies[j]; m_CollNormals.Clear(); m_CollPoints.Clear(); b1.Shape.FindCollisions(b2.Shape, m_CollPoints, m_CollNormals); if (m_CollNormals.Count > 0) { var collision = new Collision(); var toB2 = (b2.transform.position - b1.transform.position).normalized; CalculateFinalCollisionParams(toB2, out collNormal, out collPoint); collision.Calculate(b1, b2, collNormal, collPoint); } } } }