Unity如何以浮点形式获取Transform.forward

时间:2019-02-15 17:45:50

标签: unity3d

我试图为3D平台游戏制作空中动作,并且试图将transform.forward和transform.right用作浮动对象。但是,我似乎无法弄清楚如何将它们更改为浮点值,因为它们是Vector3变量。这是我尝试过的:

velX = transform.forward * Input.GetAxis("Horizontal");
velZ = transform.right * Input.GetAxis("Vertical");

我得到一个错误,说transform.forwardtransform.right是Vector3值,而velX和velZ是浮点数。

2 个答案:

答案 0 :(得分:1)

不能完全确定您要实现的目标,但是如果您正在寻找向量的标量表示形式,即实际的向量长度,那么Vector3.magnitude将会得到它。它将返回给定向量原点与其端点之间的距离。

您可以通过调用以下命令获得向量幅度:

Vector3.magnitude(point.forward)

而且我几乎可以肯定您可以做到:

point.forward.magnitude

您可以转到herehere进行进一步的参考。

再次,我不确定这是否是您要尝试得到的,但希望对您有所帮助。

答案 1 :(得分:0)

想通了:

velX = (transform.forward.x + transform.right.x) * Input.GetAxis("Horizontal");
velZ = (transform.forward.z + transform.right.z) * Input.GetAxis("Vertical");