想翻转火点,现在玩家不再向左移动。
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);
}
答案 0 :(得分:0)
Transform.Translate
的第二个参数,它会在相对于对象的坐标空间 中移动。由于您要翻转它,因此您始终会朝着同一方向移动。链接的文档指出:
如果忽略
relativeTo
或将其设置为Space.Self
,则会应用移动 相对于变换的局部轴。
您要使用Space.World
作为第二个参数(默认为Space.Self
):
transform.Translate(Vector3.right * h * movSpeed * Time.deltaTime, Space.World);