如何在Unity 3D中制作玩家的垂直(前后)移动



我正在Unity 3D中创建一个游戏项目,我设法让玩家向左或向右移动,但在让玩家向前或向后移动时遇到问题。

它是代码的一部分。如何让玩家前后移动?我已经使用了getaxis函数,但仍然不起作用。

void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
jump = true;
}
horizontalInput = Input.GetAxis("Horizontal");
verticalInput = Input.GetAxis("Vertical"); ;
}
private void FixedUpdate()
{
GetComponent<Rigidbody>().velocity = new Vector3(horizontalInput, GetComponent<Rigidbody>().velocity.y, 0);

if (jump==true)
{
GetComponent<Rigidbody>().AddForce(Vector3.up * 5, ForceMode.VelocityChange);
jump = false;
}
}
}
private void FixedUpdate()
{
GetComponent<Rigidbody>().velocity = new Vector3(horizontalInput, GetComponent<Rigidbody>().velocity.y, verticalInput);
if (jump==true)
{
GetComponent<Rigidbody>().AddForce(Vector3.up * 5, ForceMode.VelocityChange);
jump = false;
}
}

如果你不是将速度矢量的z轴设置为零,而是将其设置为垂直输入的值,这将允许玩家基于"垂直"的值向前或向后移动。轴。

最新更新