我正在开发我的宇宙飞船游戏。我已经做了很多事情,但现在我遇到了一个问题。游戏控制由sidekiq -C path/to/sidekiq.yml -d (-e environment)
制作。
我现在要做的是,一旦我拿下W键的较小部分,让玩家继续向同一方向移动或从其他键移动。我希望玩家继续朝着与上次输入相同的方向移动,如果玩家想要改变方向,他需要点击另一个按钮,然后它将开始向另一个方向移动。我自己尝试了但是我没有成功。
classify
答案 0 :(得分:0)
发生了这种情况,因为Input.GetAxis("Horizontal")
和Input.GetAxis("Vertical")
在未按下按键时值为0。
将FixedUpdate()
中的代码更改为:
void FixedUpdate()
{
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = 0f;
if (Input.GetAxisRaw("Vertical") != 0f)
{
moveVertical = Input.GetAxisRaw("Vertical");
rb.velocity = transform.forward * moveVertical * speed;
}
transform.Rotate(0.0f, moveHorizontal * RotSpeed * Time.deltaTime, 0.0f);
rb.position = new Vector3(Mathf.Clamp(rb.position.x, boundary.xMin, boundary.xMax), 0.0f, Mathf.Clamp(rb.position.z, boundary.zMin, boundary.zMax));
rb.AddForce(transform.forward * Force);
}
我使用GetAxisRaw
因为它在按下时给出的值为-1或1,在没有时为0。