gpt4 book ai didi

c# - 如何在不指定确切键的情况下读取用户按下的键?

转载 作者:行者123 更新时间:2023-12-05 01:23:39 25 4
gpt4 key购买 nike

基本上我需要的是如何缩短我的代码的想法。

所以我现在有一个 IF 系列来获取用户按下的键:

if (Input.GetKeyDown(KeyCode.I))
{
AddToBuffer("I");
}
else if (Input.GetKeyDown(KeyCode.N))
{
AddToBuffer("N");
}
else if (Input.GetKeyDown(KeyCode.F))
{
AddToBuffer("F");
}

它工作得很好,但我想要的是缩短它,这样就可以保存以缓冲任何键(更好的是,作为一个字符串)

这样我就不必再指定按下了什么键。

(也许像 TryParse 等)

最佳答案

InputString包含在当前帧上按下的所有键的字符串。建议将字符串分解为字符,如 Unity 文档中的输入字符串示例所示,因为 inputString 可以包含退格符“\b”并输入“\n”字符。

监听作弊代码的示例可能如下所示:

string cheatCode = "money";
int cheatIndex = 0;
void Update()
{
if(Input.anyKeyDown)
{
foreach (char c in Input.inputString)
{
if(c == cheatCode[cheatIndex])
{
//the next character was entered correctly
Debug.Log("The next character {0} was entered correctly", c);
//On the next key down, check the next character
cheatIndex++;
} else
{
//The character was not correctly entered, reset the cheat index back to the start of the code
Debug.Log("Cheat code invalid. {0} was not the next character", c);
cheatIndex = 0;
}
}
if(cheatIndex == cheatCode.Length)
{
Debug.Log("Cheat code was successfully entered")
}
}
}

我没有在 Unity 中编写和测试它,所以你的里程可能会有所不同。

关于c# - 如何在不指定确切键的情况下读取用户按下的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72087917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com