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

Unity3d Unity如何以浮点形式获得Transform.forward,unity3d,Unity3d,我正在尝试为3D平台创建空中运动,并尝试使用transform.forward和transform.right作为浮动。然而,我似乎不知道如何将它们更改为浮点值,因为它们是Vector3变量。以下是我尝试过的: velX = transform.forward * Input.GetAxis("Horizontal"); velZ = transform.right * Input.GetAxis("Vertical"); 我得到的是一个错误,说的是变换。forward和变换。right是Ve

我正在尝试为3D平台创建空中运动,并尝试使用transform.forward和transform.right作为浮动。然而,我似乎不知道如何将它们更改为浮点值,因为它们是Vector3变量。以下是我尝试过的:

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

我得到的是一个错误,说的是
变换。forward
变换。right
是Vector3值,而velX和velZ是浮点值。

不完全确定你想要实现什么,但如果你在寻找向量的标量表示,那就是实际的向量长度,然后
Vector3.magnity
将得到它。它将返回给定向量原点与其端点之间的距离

您可以通过调用以下命令来获取向量大小:

Vector3.magnitude(point.forward)
我几乎可以肯定你甚至可以做到:

point.forward.magnitude
你可以去看看,以便进一步参考

再说一次,我不确定这是否是你想要得到的,但我希望这会有所帮助。

找到了答案:

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

我不确定你在这里想要实现什么。.forward和.right字段返回向量3。x、y和z字段都来自float类型,并且您已经获得了float形式的值。您将使用moveDirection做什么?