使用Transform.translate以45度角移动播放器?

时间:2015-09-30 22:17:10

标签: c# unity3d

if (Input.GetKeyDown(KeyCode.LeftArrow))
{
    transform.Translate(-Vector3.right * distance);
}
else if (Input.GetKeyDown(KeyCode.RightArrow))
{
    transform.Translate(Vector3.right * distance);
}

想要这样做,当按下左/右箭头键时,玩家向左/向右移动但是以45度角移动。有没有办法使用带有x和y坐标的transform.translate,而不是Vector3.right?感谢

1 个答案:

答案 0 :(得分:1)

当然,任何标准化向量都是一个方向向量,你不仅限于右,向上,向前。

Vector3 direction = new Vector3(1f, 1f, 0f).normalized;

if (Input.GetKeyDown(KeyCode.LeftArrow))
    transform.Translate(direction * distance);

else if (Input.GetKeyDown(KeyCode.RightArrow))
    transform.Translate(direction * distance);