我正在尝试使一个简单的第三人称摄影机围绕我的角色旋转。我希望X键向右旋转,Z键向左旋转。我有这个工作。我的问题是,当我按住其中一个键(例如X),然后再按任何其他键时,Input.GetKey(KeyCode.X)
停止返回true。因此,对于以下简单示例,它将打印消息,直到按下另一个键为止,然后直到我再次按下该键时才再次显示。
void LateUpdate()
{
if(Input.GetKey(KeyCode.X))
{
print("X is down");
}
}
这使我无法在移动角色时旋转摄像机,因为一旦我尝试通过箭头键更改方向,就会使if语句变为false。我应该使用另一种方法吗?
编辑-这不是Unity或我的代码的问题。我使用的是Teamviewer,它必须以不同的方式处理输入
答案 0 :(得分:1)
这对我有用。
检查按钮是否被按下时,您是否正在使用else? if (Input.GetKey(KeyCode.X))
{
print("X is down");
}
if (Input.GetKey(KeyCode.Y))
{
print("Y is down");
}
如果我只有1个,它也对我有用。即使我按下任何其他键,“ X按下”也会被打印。
答案 1 :(得分:0)
这可能是硬件问题。不同质量级别的键盘具有不同的行为。例如,我曾经有一个键盘,如果我同时按下三个以上的键,则在释放它们时不会注册,并且在我再次按下并释放键之前,我的角色将一直处于运行或旋转状态。昂贵的“游戏”键盘应比其他键盘更好地同时处理多个按键。 YMMV。
答案 2 :(得分:0)
最终是由于远程访问。我正在使用Teamviewer远程运行运行Unity的笔记本电脑。一旦我直接使用笔记本电脑,它就会按预期工作。