如何使用键盘移动gameObject仅1个Unity单位



我正在尝试制作一款益智平台游戏。主角可以使用箭头键向上、向右、向下或向左移动。如果我举手投足,一切都很顺利。但是,如果箭头被按下,我希望角色继续移动,当我举起手指时停止。

这是我的代码:

void Update()
{
if (Input.GetKey(KeyCode.DownArrow))
{
direction = 2;
}
if (Input.GetKey(KeyCode.LeftArrow))
{
direction = 3;
}
if (Input.GetKey(KeyCode.UpArrow))
{
direction = 4;
}
if (Input.GetKey(KeyCode.RightArrow))
{
direction = 1;
}
if (Input.GetKeyUp(KeyCode.DownArrow) ||
Input.GetKeyUp(KeyCode.LeftArrow) ||
Input.GetKeyUp(KeyCode.UpArrow) ||
Input.GetKeyUp(KeyCode.RightArrow))
{
direction = 0;
}
movePacman();
}
private void movePacman()
{  
switch (direction)
{
case 1:
moveRight();              
break;
case 2:
moveDown();              
break;
case 3:
moveLeft();               
break;
case 4:
moveUp();              
break;
default:
break;
}
}

如果我的手指举得不够快,我的吃豆人有时会用这个代码做两个动作。

如何解决这个问题?

  • 你的运动功能(上、下、左、右(是增加速度还是改变转换的主要关键?

  • 您的开关盒没有";情况0:";。你可以创建一个停止移动功能,并在情况0中提到

  • 而不是保持movePacman((;在update函数中,只有当任何键都按下时才调用它。

  • 您也可以直接调用按键按下的if函数中的各个移动函数。(如果单击了"向上箭头"-->moveUp((;(

  • 还可以考虑使用Nested if函数。

相关内容

  • 没有找到相关文章

最新更新