这样写会出现一个问题,比如玩家如果同时按上和左建,坦克会斜着移动,所以建议将transform.Translate(Vector3.up * v * moveSpeed * Time.deltaTime,Space.World);
transform.Translate(Vector3.up * h * moveSpeed * Time.deltaTime,Space.World);这两句写在if里面,且在交换精灵之后应该更合理,先换图再移动。
if (h < 0)//左边
{
sr.sprite = tankSprite[3];
transform.Translate(Vector3.right * h * moveSpeed * Time.deltaTime, Space.World);
}
else if(h > 0)
{
sr.sprite = tankSprite[1];
transform.Translate(Vector3.right * h * moveSpeed * Time.deltaTime, Space.World);
}
else if(v > 0)
{
sr.sprite = tankSprite[0];
transform.Translate(Vector3.up * v * moveSpeed * Time.deltaTime, Space.World);
}
else if(v < 0)
{
sr.sprite = tankSprite[2];
transform.Translate(Vector3.up * v * moveSpeed * Time.deltaTime, Space.World);
}
else
{
return;
}