I am creating a keypad in my game. The gameobject I have created has 10 buttons: 0-9. The player has to enter a 4 digit code in order to open a door. As soon as the player enters the first digit, it is displayed on the screen of the keypad.
I have all the basic code working, but I am sure I have done this in a very inefficient fashion. Right now, I have attached the following function to one of my keys, the number 1 key in fact:
public void Key1() {
if (digit1entered == false) {
digit1 = 1;
displaycode.text = digit1.ToString () + digit2.ToString () + digit3.ToString () + digit4.ToString ();
print ("First digit entered");
digit1entered = true;
} else {
if (digit1entered == true && digit2entered == false) {
digit2 = 1;
digit2entered = true;
displaycode.text = digit1.ToString () + digit2.ToString () + digit3.ToString () + digit4.ToString ();
print ("2nd digit entered");
} else {
if (digit2entered == true && digit3entered == false) {
digit3 = 1;
digit3entered = true;
displaycode.text = digit1.ToString () + digit2.ToString () + digit3.ToString () + digit4.ToString ();
print ("3rd digit entered");
} else {
if (digit3entered == true && digit4entered == false) {
digit4 = 1;
digit4entered = true;
displaycode.text = digit1.ToString () + digit2.ToString () + digit3.ToString () + digit4.ToString ();
print ("4th digit entered");
}
}
}
}
}
In order to make the entire keypad work, I would need to create 9 more functions like the above, each with updated values 2-0. That means I would end up with 10 functions that are all similar, except for the value they enter. That's bad programming, so how do I avoid that? Oh, and if the above is already poor programming to begin with, all tips are welcome ;-)