统一对角线运动不起作用

时间:2016-04-13 21:29:08

标签: unity3d unity5

我希望我的播放器在对角线方向移动,这是我用来向下对角线移动的代码:

 if (Input.GetAxisRaw("Horizontal") > 0f && Input.GetAxisRaw("Vertical") < 0f)
 {
      front45 = true;
      rb.velocity = new Vector3(moveSpeed, -moveSpeed, 0f);
 }
然而,刚体2d不会朝那个方向移动。它将向上,向下,从一侧移动到另一侧,但从不对角线。

front45 = true仅供动画师知道何时更改动画。

1 个答案:

答案 0 :(得分:1)

我会尝试这样的事情:

float h = Input.GetAxisRaw("Horizontal") * Time.deltaTime;
float v = Input.GetAxisRaw("Vertical") * Time.deltaTime;

if (h != 0 && v != 0)
    front45 = true; //Not sure what this does, so I just left it inside the condition

rb.velocity = new Vector3(h * moveSpeed, v * moveSpeed, 0f);

这应该适用于任何方向。