玩家不再向左移动

时间:2019-04-17 16:06:39

标签: c# unity3d

想翻转火点,现在玩家不再向左移动。

void Update()
{

    float h = Input.GetAxis("Horizontal");

    transform.Translate(Vector3.right * h * movSpeed * Time.deltaTime);

    if (h > 0 && !facingRight)
    {
        Flip();
    }
    else if (h < 0 && facingRight)
    {
        Flip();
    }

}

private void Flip()
{
    facingRight = !facingRight;
    transform.Rotate(0f, 180f, 0f);
}

1 个答案:

答案 0 :(得分:0)

如果您不使用

Transform.Translate的第二个参数,它会在相对于对象的坐标空间 中移动。由于您要翻转它,因此您始终会朝着同一方向移动。链接的文档指出:

  

如果忽略relativeTo或将其设置为Space.Self,则会应用移动   相对于变换的局部轴。

您要使用Space.World作为第二个参数(默认为Space.Self):

transform.Translate(Vector3.right * h * movSpeed * Time.deltaTime, Space.World);