Unity3d 沿向量查找距离处的点

Unity3d 沿向量查找距离处的点,unity3d,3d,Unity3d,3d,给定一个已知的方向和范围,我试图计算从起点开始沿着向量的3D位置 为此,我基本上遵循了Unity手册以及与此主题相关的各种其他问题中提供的解决方案: 按照您的方向,将其归一化,然后乘以所需的值 距离 这对我不起作用,但我不知道怎么了。下面是我的代码,它应该从起点向鼠标光标位置画一条线,在距起点的给定距离处结束: IEnumerator绘图线使用浮动范围 { 雷卡斯特击中; 向量3末端位置; float rangeSquared=Mathf.Sqrtrange; 而Input.GetButt

给定一个已知的方向和范围,我试图计算从起点开始沿着向量的3D位置

为此,我基本上遵循了Unity手册以及与此主题相关的各种其他问题中提供的解决方案:

按照您的方向,将其归一化,然后乘以所需的值 距离

这对我不起作用,但我不知道怎么了。下面是我的代码,它应该从起点向鼠标光标位置画一条线,在距起点的给定距离处结束:

IEnumerator绘图线使用浮动范围 { 雷卡斯特击中; 向量3末端位置; float rangeSquared=Mathf.Sqrtrange; 而Input.GetButtonFire1 { 如果Physics.RaycastCamera.main.screenpointorayinput.mousePosition,out hit,2000 { endPos=hit.point-startPos.normalized*rangeSquared;//startPos是要绘制的线的起点 Debug.DrawLinestartPos、hit.point、Color.green、Time.deltaTime; Debug.DrawLinestartPos、endPos、Color.red、Time.deltaTime; } 收益返回空; } } 由于某种原因,这个方向似乎偏离了方向。在本图中,绿色的Debug.Draw线直接从起点到鼠标位置,红色的线到计算向量:

我试过透视和正交相机,我试过改变起点,问题是一样的。我不知道该怎么做,因为我读过的所有东西都表明它应该工作


有什么问题吗?

目前,您的endPos位于矢量距离和方向,但从0,0,0开始

相反,它应该是

endPos=startPos+hit.point-startPos.normalized*rangeSquared; 还是为了更好的理解

var距离=范围平方; var方向=hit.point-startPos.normalized; endPos=起始Pos+方向*距离;