如何在Unity 3d中使用RaycastHit.Point

时间:2019-05-14 19:37:49

标签: c# unity3d raycasting

我正在从摄像机到屏幕中心进行射线广播,如下所示:

void Foo()
{
    using( ReadFileResult rfr = ReadFile( ... ) )
    {
        Stream s = rdr.InnerFileStream;

        // ..
    } 
}

我可以使用

访问命中点
 Ray ray = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f));

我将十字准线放置在命中位置,但我想将十字准线定位在光线投射方向上,距离相机只有几个单位,我该怎么做?因为有时候命中位置可能真的很远,所以我想要一个固定的距离以将十字准线放置在光线投射的方向上。

1 个答案:

答案 0 :(得分:0)

您可以简单地做到:

Vector3 position = (hit.point - Camera.ViewportToWorldPoint(new Vector3(0.5f, 0.5f))).normalize * length;