我试图为3D平台游戏制作空中动作,并且试图将transform.forward和transform.right用作浮动对象。但是,我似乎无法弄清楚如何将它们更改为浮点值,因为它们是Vector3变量。这是我尝试过的:
velX = transform.forward * Input.GetAxis("Horizontal");
velZ = transform.right * Input.GetAxis("Vertical");
我得到一个错误,说transform.forward
和transform.right
是Vector3值,而velX和velZ是浮点数。
答案 0 :(得分:1)
不能完全确定您要实现的目标,但是如果您正在寻找向量的标量表示形式,即实际的向量长度,那么Vector3.magnitude
将会得到它。它将返回给定向量原点与其端点之间的距离。
您可以通过调用以下命令获得向量幅度:
Vector3.magnitude(point.forward)
而且我几乎可以肯定您可以做到:
point.forward.magnitude
再次,我不确定这是否是您要尝试得到的,但希望对您有所帮助。
答案 1 :(得分:0)
想通了:
velX = (transform.forward.x + transform.right.x) * Input.GetAxis("Horizontal");
velZ = (transform.forward.z + transform.right.z) * Input.GetAxis("Vertical");