Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Unity 3d中使用RaycastHit.Point_C#_Unity3d_Raycasting - Fatal编程技术网

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

C# 如何在Unity 3d中使用RaycastHit.Point,c#,unity3d,raycasting,C#,Unity3d,Raycasting,我正在从相机到屏幕中心进行光线投射,如下所示: Ray ray = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f)); 我可以使用 RaycastHit hit; hit.point; 我把十字线放在命中的位置,但是我想把十字线放在光线投射的方向,离摄像机只有几个单位,我怎么做?因为有时命中位置可能非常远,所以我需要一个固定的距离,以便在光线投射方向上放置十字线。您可以简单地执行以下操作: Vector3 position

我正在从相机到屏幕中心进行光线投射,如下所示:

 Ray ray = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f));
我可以使用

RaycastHit hit;
  hit.point;
我把十字线放在命中的位置,但是我想把十字线放在光线投射的方向,离摄像机只有几个单位,我怎么做?因为有时命中位置可能非常远,所以我需要一个固定的距离,以便在光线投射方向上放置十字线。

您可以简单地执行以下操作:

Vector3 position = (hit.point - Camera.ViewportToWorldPoint(new Vector3(0.5f, 0.5f))).normalize * length;
您可以简单地执行以下操作:

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

你可以从生命点开始使用x和y,并为z使用常数,如1.0f,或者你希望固定距离有多远?你可以从生命点开始使用x和y,并为z使用常数,如1.0f,或者你希望固定距离有多远?谢谢!但是我使用了Ray.GetPoint()方法。谢谢!但是我使用了Ray.GetPoint()方法。