- Home /
Detecting if an input was something other then a specified character (C#)
I'm trying to make a cheat code. Right now, if I type in lgcash, I get infinite money. The problem is that if I typed in letters in between, it still works; like if I typed in lgcasjjjjjjjh It would still work. I don't like that. This is my code:
if(Input.GetKeyDown("l"))
{
one = true;
}
if(one == true && Input.GetKeyDown("g")){
two = true;
}
if(two == true && Input.GetKeyDown("c")){
three = true;
}
if(three == true && Input.GetKeyDown("a")){
four = true;
}
if(four == true && Input.GetKeyDown("s")){
five = true;
}
if(five == true && Input.GetKeyDown("h")){
Dontdestroy.playerscore = Mathf.Infinity;
}
Is there some sort of if statement where it says if the input was not g? Am I doing this entirely wrong? Because I feel like this could be done in a much easier way.
Thanks in advance.
Perhaps bad technique but you can nest your if's for a step by step process, and break or else your way out of it.
I say this really for you to consider the logic rather than the technique.
Answer by cjdev · Oct 27, 2013 at 12:47 PM
You could use Input.anyKeyDown to check if a key is down and then reset your sequence. Something like this:
private string[] cheat = { "l", "g", "c", "a", "s", "h" };
private int cheatIndex = 0;
void Update () {
if (Input.anyKeyDown)
{
if (Input.GetKeyDown(cheat[cheatIndex]))
{
cheatIndex++;
if (cheatIndex == cheat.Length)
{
Dontdestroy.playerscore = Mathf.Infinity;
cheatIndex = 0;
}
}
else
{
cheatIndex = 0;
}
}
}
Answer by tw1st3d · Oct 26, 2013 at 08:05 PM
Instead of doing it that way, I would create an in-game console menu that you can type into, so you are creating a string before they hit enter, and you compare that string to any commands that you have set up. This way, if someone doesn't want to do that in the game, and just by some chance manage to type it, they won't get the cheat.
That would solve the problem, but I don't want it to be apparent that cheat codes exist, so people don't know they can cheat unless somebody tells them.
Your answer
![](https://koobas.hobune.stream/wayback/20220613120700im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Help with a string format input 0 Answers
How can I rotate my input axes 90º? 1 Answer
iOS keyboard - limit number of keyboard characters 0 Answers
GetComponent from string name? 3 Answers