我想做一个作弊代码系统。我有一组字符。我想要将玩家输入的任何内容赋给那个字符,然后将索引更改为下一个字符,并重复此操作。最后,我想把所有字符组合成一个字符串,看看这是不是作弊码。如果是,那么玩家将获得能量或其他东西。
我想让字符是我按下的任何按钮。有没有更好的方法来做,而不是像这样:
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没有内置KeyCode
到char
的映射。
我发现一个Gist有一个char
到KeyCode
字典。只需交换键和值,就可以了:https://gist.github.com/b-cancel/c516990b8b304d47188a7fa8be9a1ad9
我不想把代码放在这里的答案,因为它太长了,但我做了一个分支,以防原始的Gist下降:https://gist.github.com/starikcetin/62506e691ecd465159a235fb7acb44f0
编辑:为什么不以KeyCode
数组的形式保存作弊代码呢?这样你就不用处理字符了