Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.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# 沿着一个方向计算距离_C#_Unity3d - Fatal编程技术网

C# 沿着一个方向计算距离

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

有没有办法计算y轴点内的距离?这样,当两个对象仅在y轴而不是在x或z轴上彼此远离时,才会显示该值

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轴的网格之间的距离,则将涉及渲染器组件,并且需要更多的工作。