public override CollisionPoints TestCollision( Transform transform, SphereCollider sphere, Transform sphereTransform ) { CollisionPoints points = sphere.TestCollision(sphereTransform, this, transform); Vector2 T = points.A; points.A = points.B; points.B = T; points.normal = -points.normal; return(points); }
private void ResolveCollisions() { List <Collision> colissions = new List <Collision>(); foreach (Object a in m_objects) { foreach (Object b in m_objects) { if (a == b) { break; } if (a.collider == null || b.collider == null) { continue; } CollisionPoints points = a.collider.TestCollision( a.transform, b.collider, b.transform ); if (points.HasCollision) { colissions.Add(new Collision(a, b, points)); } } } foreach (Solver solver in m_solvers) { solver.Solve(colissions); } }