如何将字符变量设置为Input.GetKey的KeyCode ?



我想做一个作弊代码系统。我有一组字符。我想要将玩家输入的任何内容赋给那个字符,然后将索引更改为下一个字符,并重复此操作。最后,我想把所有字符组合成一个字符串,看看这是不是作弊码。如果是,那么玩家将获得能量或其他东西。

我想让字符是我按下的任何按钮。有没有更好的方法来做,而不是像这样:

if (Input.GetKeyDown(KeyCode.A))
{
CodeAttempt[index] = 'a'
index++;
}
if (Input.GetKeyDown(KeyCode.C))
{
CodeAttempt[index] = 'b'
index++;
}
if (Input.GetKeyDown(KeyCode.C))
{
CodeAttempt[index] = 'c'
index++;
}

等等?

您可以使用Input。anyKeyDown和输入。inputString(区分大小写):

private void Update()
{
if( Input.anyKeyDown )
{
foreach( char c in Input.inputString )
CodeAttempt[index++] = char.ToLowerInvariant( c );
}
}

据我所知,Unity没有内置KeyCodechar的映射。

我发现一个Gist有一个charKeyCode字典。只需交换键和值,就可以了:https://gist.github.com/b-cancel/c516990b8b304d47188a7fa8be9a1ad9

我不想把代码放在这里的答案,因为它太长了,但我做了一个分支,以防原始的Gist下降:https://gist.github.com/starikcetin/62506e691ecd465159a235fb7acb44f0


编辑:为什么不以KeyCode数组的形式保存作弊代码呢?这样你就不用处理字符了

最新更新