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;
}

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 …