Example #1
0
    private void OnDrawGizmos()
    {
        if (!rayOrigin || !rayEnd || !cube)
        {
            return;
        }

        Bounds bounds = new Bounds(cube.position, cube.lossyScale);
        MinMax minMax = MinMax.FromBounds(bounds);

        Vector3 A       = rayOrigin.position;
        Vector3 B       = rayEnd.position;
        Vector3?contact = RaycastToAABB(A, B, minMax);

        Gizmos.color = Color.red;
        Gizmos.DrawSphere(A, 0.3f);

        Gizmos.color = Color.blue;
        Gizmos.DrawSphere(B, 0.3f);

        Gizmos.color = Color.magenta;
        Gizmos.DrawLine(A, B);

        if (contact.HasValue)
        {
            Gizmos.color = Color.green;
            Gizmos.DrawSphere(contact.Value, 0.3f);
        }
    }