C# 沿着一个方向计算距离
有没有办法计算y轴点内的距离?这样,当两个对象仅在y轴而不是在x或z轴上彼此远离时,才会显示该值C# 沿着一个方向计算距离,c#,unity3d,C#,Unity3d,有没有办法计算y轴点内的距离?这样,当两个对象仅在y轴而不是在x或z轴上彼此远离时,才会显示该值 float Distance_To_Top = Vector3.Distance (One.transform.position, Two.transform.position); 对于更一般的情况,您可以使用Vector3.Dot和标准化方向向量来查找在单个方向上测量的任意两点之间的距离: Vector3 differenceDirection = Vector3.up; float diff
float Distance_To_Top = Vector3.Distance (One.transform.position, Two.transform.position);
对于更一般的情况,您可以使用
Vector3.Dot
和标准化方向向量来查找在单个方向上测量的任意两点之间的距离:
Vector3 differenceDirection = Vector3.up;
float difference = Vector3.Dot(differenceDirection,
Two.transform.position - One.transform.position);
而且,difference
也可以告诉您它们的相对位置:
- 如果
,difference>0
沿着difference
与
不同的方向One
运行
- 如果
,差异<0
一个
沿着
差异方向
从
两个
通过
差异
gameObjec1.transform.position.y-gameObjec2.transform.position.y
?正如MathewHD所说。。非常简单,甚至比计算矢量大小更有效;)非常感谢。我认为Vector3.Distance()是一个比较好的方法。@如果您想要所有3个轴上的绝对距离,可以说是的;)假设您需要两个游戏对象中心之间的距离(仅y分量),则@MathewHD具有正确的解决方案。否则,如果要查找沿Y轴的网格之间的距离,则将涉及渲染器组件,并且需要更多的工作。