- Home /
Problem With else if statement
If anyone can help it would be much appreciated. my var "CSopen" is not being set to true, and the CScreen is not being destroyed on second press of "c". it opens a copy of the menu for every time i press the "c" key. if i change "keycode.c" on the "else if" to "escape" it works wonderfully.
//Character Screen
if((Input.GetKeyDown(KeyCode.C)) && (CSopen == false)) { Instantiate(cs); Time.timeScale = 0; CSopen = true; } else if((Input.GetKeyDown(KeyCode.C)) && (CSopen == true)) { Destroy (GameObject.FindWithTag("CScreen")); Time.timeScale = 1; CSopen = false; }
Answer by mrDude · Oct 23, 2011 at 10:21 PM
if the button you specify causes the IF to behave differently then obviously the problem must be with the button you specify...
I don't use key codes much myself so I can't offer too much advice on them but what I can say is "Why not just use GetKeyDown("C") instead?". Of course you will need to account for C and c but I think that much is true for key codes also isn't it?
Anyhow, you are making your code overly complicated. you can simplify that code of yours a lot by doing this:
if (Input.GetKeyDown("C") || Input.GetKeyDown("c"))
{
if (!CSopen)
Instantiate(cs);
else
Destroy(GameObject.FindwithTag("CScreen"));
CSopen = !CSopen;
Time.timeScale = (CSOpen) ? 0 : 1;
}
This should make debugging a little easier ...
Thank you very much :) i'm kinda out of practice program$$anonymous$$g / new to java script... I believe i see what i did wrong. ty again :)
Your answer
![](https://koobas.hobune.stream/wayback/20220613020709im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Simple Quick Question 2 Answers
Use Input.GetKeyDown as a function? 1 Answer
Input.GetKeyDown doesn't work with several keys 1 Answer
GetKeyDown Problem 3 Answers
Enter not being called 2 Answers