コード例 #1
0
    void Update()
    {
        HelperPhysics.Hit hit;
        Vector3           point1, point2;
        float             range = 0.3f;

        trans[0].RotateAround(Vector3.zero, Vector3.one, range);
        trans[1].RotateAround(Vector3.zero, -Vector3.one, range);
        trans[2].RotateAround(Vector3.zero, Vector3.one, range);
        trans[3].RotateAround(Vector3.zero, -Vector3.one, range);

        if (HelperPhysics.IntersectLineToLine(trans[0].position, trans[1].position, trans[2].position, trans[3].position, out hit, out point1, out point2))
        {
            point.gameObject.SetActive(true);
            point.position = hit.point;
        }
        else
        {
            point.gameObject.SetActive(false);
        }

        if (!float.IsNaN(Vector3.Dot(point1, point2)))
        {
            dot[0].gameObject.SetActive(true);
            dot[1].gameObject.SetActive(true);
            dot[0].position = point1;
            dot[1].position = point2;
        }
        else
        {
            dot[0].gameObject.SetActive(false);
            dot[1].gameObject.SetActive(false);
        }
    }