【发布时间】:2022-08-13 21:07:00
【问题描述】:
我正在开发一款与Subway Surfers 具有相似玩家机制的游戏,即当用户给出相应的输入时,玩家会切换车道。
private void Update() {
if (Input.GetKeyDown(KeyCode.A)) {
ChangeLane(-1);
} else if (Input.GetKeyDown(KeyCode.D)) {
ChangeLane(1);
}
}
这个 sn-p 基本上检查用户输入并使用ChangeLane(int) 方法让用户切换车道,参数-1 表示玩家切换到左侧车道,1 表示玩家切换到右车道。
问题:
我想检查两者W一个小号D在我的脚本中同时输入键和箭头键。
想到这里,立刻想到的是:
if (Input.GetKeyDown(KeyCode.A) || Input.GetKeyDown(KeyCode.LeftArrow) { ... }
我想做一些检查两者的事情一个和左箭头只有一个 if 支票,而不是像上面所示的那样分开。
我试过的:
Input.GetAxis(\"Horizontal\"),但这在这种情况下不起作用,因为只要按下键,这个值就会增加直到 1。
接下来,Input.GetAxisRaw(\"Horizontal\"),这几乎起作用了,只要按下键就会返回1。
int horizontalInput = (int)Input.GetAxisRaw(\"Horizontal\");
if (horizontalInput != 0) {
ChangeLane(horizontalInput);
}
但....
Input.GetAxis(string) 和 Input.GetAxisRaw(string) 的工作方式与 Input.GetKey(KeyCode) 类似,但我想要像 Input.GetKeyDown(KeyCode) 一样工作的东西。
PS:我希望得到一个不包括在按下按钮后使用boolean 标志跳过帧的答案。