Exemplo n.º 1
0
    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);
                }
            }
        }
    }