对Vector3.Angle的视觉理解

时间:2014-12-06 05:31:15

标签: vector unity3d angle

我不理解Unity中Vector3.Angle的概念。 有人可以详细解释它的作用和工作原理吗? 如果你能提供一些图表让我更直观地理解它,那也真的很棒。

2 个答案:

答案 0 :(得分:0)

非常直接,Vector3.angle。需要2个参数来往。基本上返回从一个位置生成的角度到另一个位置。一个例子是var characterDirection将是"来自"参数,让我们说var enemyPosition将是"到"参数,它将产生锐角。希望这会有所帮助,Unity也有一个很好的脚本API,你应该检查一下。

答案 1 :(得分:0)

首先要了解的是向量。向量是既具有幅度又具有方向的数学量。出于这个问题的目的,我们不在乎幅度,但是您可以将向量视为指向某个方向的箭头。

现在,您可能对如何仅使用Vector3(x, y, z)绘制箭头感到困惑。尽管您可能更常用Vector3来表示3D空间中的一个点,但顾名思义,它当然也可用作矢量。问题是,如果您尝试调用Vector3.Angle(transform1.position, transform2.position),将会得到一些奇怪的结果,因为它期望 vectors ,而不是 positions ,即使它们使用相同的对象类型。

因此,您应该改做类似的事情

Vector3 direction = transform2.position - transform1.position;
float angle = Vector3.Angle(direction, transform1.forward);

forward只是沿着z轴的向量的简写,所以这就像在2D空间中看一个角度。