public override void Update()
    {
        MainMenu.color    = Unselected;
        SwitchTeam.color  = Unselected;
        OptionsMenu.color = Unselected;
        BackToGame.color  = Unselected;
        ExitGame.color    = Unselected;

        if (MainMenu.Hovered())
        {
            MainMenu.color = Selected;
        }
        else if (SwitchTeam.Hovered() && _CanSwitchTeam)
        {
            SwitchTeam.color = Selected;
        }
        else if (OptionsMenu.Hovered())
        {
            OptionsMenu.color = Selected;
        }
        else if (BackToGame.Hovered())
        {
            BackToGame.color = Selected;
        }
        else if (ExitGame.Hovered())
        {
            ExitGame.color = Selected;
        }

        if (MainMenu.Clicked())
        {
            if (ThomasWrapper.IsPlaying())
            {
                Input.SetMouseMode(Input.MouseMode.POSITION_ABSOLUTE);
                CameraMaster.instance.SetState(CAM_STATE.LOADING_SCREEN);
                ThomasWrapper.IssueRestart();
            }
        }
        else if (SwitchTeam.Clicked() && _CanSwitchTeam)
        {
            CameraMaster.instance.Canvas.isRendering    = true;
            gameObject.GetComponent <ChadCam>().enabled = false;
            CameraMaster.instance.SetState(CAM_STATE.SELECT_TEAM);
        }
        else if (OptionsMenu.Clicked())
        {
            GUIOptionsMenu.instance.ActivatedfromExitmenu = true;
            CameraMaster.instance.SetState(CAM_STATE.OPTIONS_MENU);
        }
        else if (BackToGame.Clicked())
        {
            CameraMaster.instance.SetState(CAM_STATE.GAME);
            Input.SetMouseMode(Input.MouseMode.POSITION_RELATIVE);
        }
        else if (ExitGame.Clicked())
        {
            ThomasWrapper.IssueShutdown();
        }
    }
    public override void Update()
    {
        if (Canvas.isRendering)
        {
            Play.color      = Unselected;
            HostGame.color  = Unselected;
            Options.color   = Unselected;
            Credits.color   = Unselected;
            Exit.color      = Unselected;
            RandomHat.color = Unselected;

            if (Play.Hovered())
            {
                Play.color = Selected;
            }
            else if (HostGame.Hovered())
            {
                HostGame.color = Selected;
            }
            else if (Options.Hovered())
            {
                Options.color = Selected;
            }
            else if (Credits.Hovered())
            {
                Credits.color = Selected;
            }
            else if (Exit.Hovered())
            {
                Exit.color = Selected;
            }
            else if (RandomHat.Hovered())
            {
                RandomHat.color = Selected;
            }

            if (Input.GetMouseButtonDown(Input.MouseButtons.LEFT))
            {
                if (ChadArea.Hovered())
                {
                    Input.SetMouseMode(Input.MouseMode.POSITION_RELATIVE);
                    _RotateChad = true;
                }
            }

            if (MyNameSticker.Clicked())
            {
                TakeName = true;
                if (Blink == null)
                {
                    Blink = CaretBlink();
                    StartCoroutine(Blink);
                }
                if (ClearName)
                {
                    PlayerName.text = "";
                    ClearName       = false;
                }
            }
            else if (Input.GetMouseButtonUp(Input.MouseButtons.LEFT))
            {
                Input.SetMouseMode(Input.MouseMode.POSITION_ABSOLUTE);
                _RotateChad = false;
                TakeName    = false;
                if (Blink != null)
                {
                    StopCoroutine(Blink);
                    Blink = null;
                }
                Caret.text = "";
            }

            #region Clicked
            if (Play.Clicked() && PlayerName.text != "")
            {
                CameraMaster.instance.SetState(CAM_STATE.JOIN_HOST);
                TakeName = false;
                UserSettings.AddOrUpdateAppSetting("Hat", CameraMaster.instance.SelectedHat.ToString());
                UserSettings.AddOrUpdateAppSetting("PlayerName", PlayerName.text);
            }
            else if (HostGame.Clicked())
            {
                CameraMaster.instance.SetState(CAM_STATE.HOST_MENU);
                TakeName = false;
                UserSettings.AddOrUpdateAppSetting("Hat", CameraMaster.instance.SelectedHat.ToString());
                UserSettings.AddOrUpdateAppSetting("PlayerName", PlayerName.text);
            }
            else if (Exit.Clicked())
            {
                ThomasWrapper.IssueShutdown();
            }
            else if (SelectHatRight.Clicked())
            {
                CameraMaster.instance.SelectedHat += 1;
                AnnouncerSoundManager.Instance.Announce(ANNOUNCEMENT_TYPE.HAT);
            }
            else if (SelectHatLeft.Clicked())
            {
                CameraMaster.instance.SelectedHat -= 1;
                AnnouncerSoundManager.Instance.Announce(ANNOUNCEMENT_TYPE.HAT);
            }
            else if (RandomHat.Clicked())
            {
                CameraMaster.instance.SelectedHat = (int)(Random.Range(0.0f, 1.0f) * (HatManager.Instance.Hats.Count - 2)) + 1;
                AnnouncerSoundManager.Instance.Announce(ANNOUNCEMENT_TYPE.HAT);
            }
            else if (Options.Clicked())
            {
                CameraMaster.instance.SetState(CAM_STATE.OPTIONS_MENU);
            }
            #endregion


            if (TakeName)
            {
                string playerString = PlayerName.text;
                GUIInput.AppendString(ref playerString, 9);
                PlayerName.text = playerString;
            }
            RotateChad();

            Caret.position = PlayerName.position + new Vector2(PlayerName.size.x / 2 - 0.005f, CaretOffset + PlayerName.size.x * NameRotation);
        }
    }