protected override void OnBeforeFadeIn()
        {
            positiveButton = null;
            negativeButton = null;
            UpdateButtons();

            label.text = controlName;
            buttonCancel.MuteSelect();
        }
        protected void InitUI()
        {
            buttonCancel.onClick.AddListener(() => onCancel());

            buttonPositiveButton.onClick.AddListener(() =>
            {
                UISelectJoystickButtonWindow.showDPadButtons = false;
                UISelectJoystickButtonWindow.onCancel        = () =>
                {
                    UISelectJoystickButtonWindow.instance.FadeOut(() => BackFadeIn());
                };
                UISelectJoystickButtonWindow.onSelect = (selection) =>
                {
                    positiveButton = selection.button;
                    UpdateButtons();
                    UISelectJoystickButtonWindow.instance.FadeOut(() => BackFadeIn());
                };

                FadeOut(() => UISelectJoystickButtonWindow.instance.FadeIn());
            });

            buttonNegativeButton.onClick.AddListener(() =>
            {
                UISelectJoystickButtonWindow.showDPadButtons = false;
                UISelectJoystickButtonWindow.onCancel        = () =>
                {
                    UISelectJoystickButtonWindow.instance.FadeOut(() => BackFadeIn());
                };
                UISelectJoystickButtonWindow.onSelect = (selection) =>
                {
                    negativeButton = selection.button;
                    UpdateButtons();
                    UISelectJoystickButtonWindow.instance.FadeOut(() => BackFadeIn());
                };

                FadeOut(() => UISelectJoystickButtonWindow.instance.FadeIn());
            });

            buttonOk.onClick.AddListener(() =>
            {
                onSelect(positiveButton.Value, negativeButton.Value);
                FadeOut(() => UIControlsWindow.instance.FadeIn());
            });
        }
        protected void InitUI()
        {
            buttonCancel.onClick.AddListener(() => onCancel());
    
            buttonPositiveButton.onClick.AddListener(() =>
            {
                UISelectJoystickButtonWindow.showDPadButtons = false;
                UISelectJoystickButtonWindow.onCancel = () =>
                {
                    UISelectJoystickButtonWindow.instance.FadeOut(() => BackFadeIn());
                };
                UISelectJoystickButtonWindow.onSelect = (selection) =>
                {
                    positiveButton = selection.button;
                    UpdateButtons();
                    UISelectJoystickButtonWindow.instance.FadeOut(() => BackFadeIn());
                };

                FadeOut(() => UISelectJoystickButtonWindow.instance.FadeIn());
            });
    
            buttonNegativeButton.onClick.AddListener(() =>
            {
                UISelectJoystickButtonWindow.showDPadButtons = false;
                UISelectJoystickButtonWindow.onCancel = () =>
                {
                    UISelectJoystickButtonWindow.instance.FadeOut(() => BackFadeIn());
                };
                UISelectJoystickButtonWindow.onSelect = (selection) =>
                {
                    negativeButton = selection.button;
                    UpdateButtons();
                    UISelectJoystickButtonWindow.instance.FadeOut(() => BackFadeIn());
                };

                FadeOut(() => UISelectJoystickButtonWindow.instance.FadeIn());
            });
    
            buttonOk.onClick.AddListener(() =>
            {
                onSelect(positiveButton.Value, negativeButton.Value);
                FadeOut(() => UIControlsWindow.instance.FadeIn());
            });
        }
     protected override void OnBeforeFadeIn()
     {
         positiveButton = null;
         negativeButton = null;
         UpdateButtons();
 
         label.text = controlName;
         buttonCancel.MuteSelect();
     }