• Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by Adoyser · Oct 23, 2018 at 07:46 AM · c#guipassword

How to Set Max Numbers for a password

So here is my problem. I have a working GUI Keypad script. When I input the password it opens the doors as it is supposed to. However I have a slight snag. If the player inputs the incorrect password or enters more numbers than the password then it just keeps going infinately. So how do I set it up so that they can enter only a maximum of 4 numbers(Which is the password length) and so that if the number doesn't match it resets? I pasted my code below so ya'll can see it.

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityStandardAssets.Characters.FirstPerson;
 
 public class KeyPad : MonoBehaviour
 {
     public string curPassword = "1512";
     public string input;
     public bool onTrigger;
     public bool doorOpen;
     public bool keypadScreen;
     public Transform player;
 
     void OnTriggerEnter(Collider other)
     {
         onTrigger = true;
     }
 
     void OnTriggerExit(Collider other)
     {
         onTrigger = false;
         keypadScreen = false;
         input = "";
     }
 
     void Update()
     {
         if (input == curPassword)
         {
             stonedoor1.close_1 = false;
             stonedoor2.close_2 = false;
             doorOpen = true;
             Cursor.lockState = CursorLockMode.Locked;
             Cursor.visible = false;
             player.GetComponent<FirstPersonController>().enabled = true;
         }
         
     }
 
     void OnGUI()
     {
         if (!doorOpen)
         {
             if (onTrigger)
             {
                 GUI.Box(new Rect(0, 0, 200, 25), "Press 'E' to open keypad");
 
                 if (Input.GetKeyDown(KeyCode.E))
                 {
                     keypadScreen = true;
                     onTrigger = false;
                 }
             }
             if (keypadScreen)
             {
                 Cursor.lockState = CursorLockMode.None;
                 Cursor.visible = true;
                 player.GetComponent<FirstPersonController>().enabled = false;
             }
 
 
             if (keypadScreen)
             {
 
                 GUI.Box(new Rect(0, 0, 320, 455), "");
                 GUI.Box(new Rect(5, 5, 310, 25), input);
 
                 if (GUI.Button(new Rect(5, 35, 100, 100), "1"))
                 {
                     input = input + "1";
                 }
 
                 if (GUI.Button(new Rect(110, 35, 100, 100), "2"))
                 {
                     input = input + "2";
                 }
 
                 if (GUI.Button(new Rect(215, 35, 100, 100), "3"))
                 {
                     input = input + "3";
                 }
 
                 if (GUI.Button(new Rect(5, 140, 100, 100), "4"))
                 {
                     input = input + "4";
                 }
 
                 if (GUI.Button(new Rect(110, 140, 100, 100), "5"))
                 {
                     input = input + "5";
                 }
 
                 if (GUI.Button(new Rect(215, 140, 100, 100), "6"))
                 {
                     input = input + "6";
                 }
 
                 if (GUI.Button(new Rect(5, 245, 100, 100), "7"))
                 {
                     input = input + "7";
                 }
 
                 if (GUI.Button(new Rect(110, 245, 100, 100), "8"))
                 {
                     input = input + "8";
                 }
 
                 if (GUI.Button(new Rect(215, 245, 100, 100), "9"))
                 {
                     input = input + "9";
                 }
 
                 if (GUI.Button(new Rect(110, 350, 100, 100), "0"))
                 {
                     input = input + "0";
                 }
             }
         }
     }
 }
 
Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

2 Replies

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by pako · Oct 23, 2018 at 08:08 AM

You'l need to add a counter, which will increment every time a key is pressed. Then check the complete password, when counter == paswordLength. If that evaluates to true, open the door, if to false, reset the counter to 0, and start over.

e.g. (pseudo code)

 int passwordLength = 4;
 int counter = 0;
 bool passwordCorrect;
 
 while(counter <= passwordLength){
 
 if(counter == passwordLength){
     passwordCorrect = CheckPassword();
     if(passwordCorrect){
         OpenDoor();
     }
     else
     {
         counter = 0;
     }
 }
 else
 {
     GetNextKeyInput(int keyNumber) // keyNumber corresponds to the key position, i.e. 1 for first key, 4 for last key
    counter++// this can also be placed wherever it makes the most sense, depending on the rest of your code.
 }
 }
 
 //This may also return an int rather than void. The int returned could, for example, contain the current total input (1 to 4 numbers), so you can process it as you need. Do it as it makes most sense depending on the rest of your code.
 void GetNextKeyInput(int keyNumber){
 }
Comment
Add comment · Show 5 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image FoodLover195 · Oct 24, 2018 at 04:19 AM 0
Share

I still stand by my answer... why bother adding a counter when you can get the length of the string with an input function? @pako @Adoyser

avatar image pako FoodLover195 · Oct 24, 2018 at 08:45 AM 0
Share

Hey @FoodLover195 , the question was:

So how do I set it up so that they can enter only a maximum of 4 numbers(Which is the password length)

I honestly can't see how your code does that... Anyway, I won't enter into an argument with you.

avatar image FoodLover195 pako · Oct 24, 2018 at 10:14 AM 0
Share

I thought it was pretty straightforward. If the input string isn't correct, and the length of the input was over 3, then you could do whatever needs to be done in the else if statement. For example reset the input, or have a bool checked that doesn't allow the user to press anything else. Anyway I don't want an arguement either, just felt like you over complicated it by a tonn.

Show more comments
avatar image
1

Answer by FoodLover195 · Oct 23, 2018 at 08:01 AM

Hi @Adoyser
You should be able to place a if statement in Update to check if the string is greater than 4 characters.

 if (input == curPassword) {
     // Correct Password has been entered. Proceed
 } else if (input.Length >= 3) {
     // Incorrect password has been entered & input length is over 3  characters.
 }

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



Follow this Question

Answers Answers and Comments

587 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

How to make a Keypad for a locked door 2 Answers

Multiple Cars not working 1 Answer

Distribute terrain in zones 3 Answers

How to make a Cube act as a button to increment a number on a screen overlay panel in an FPS? 1 Answer

RTS rectangle selection system 3 Answers

  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges