示例#1
0
        public virtual void setState(MainNavButtonState newState)
        {
            isSelected = false;
            switch (newState)
            {
            case MainNavButtonState.NORMAL:
                Image.sprite = NormalSprite;
                break;

            case MainNavButtonState.SELECTED:
            {
                isSelected   = true;
                Image.sprite = SelectedSprite;
                for (int i = 0; i < mainNavButtons.Length; i++)
                {
                    if (mainNavButtons[i] != this && mainNavButtons[i].State == MainNavButtonState.SELECTED)
                    {
                        if (!mainNavButtons[i].GetComponent <Button>().IsInteractable())
                        {
                            mainNavButtons[i].setState(MainNavButtonState.DISABLED);
                        }
                        else
                        {
                            mainNavButtons[i].setState(MainNavButtonState.NORMAL);
                        }
                    }
                }
                break;
            }

            case MainNavButtonState.DISABLED:
                Image.sprite = DisabledSprite;
                setInteractable(isInteractable: false);
                if (ChangeAlphaOnDisable)
                {
                    Image.color = new Color(1f, 1f, 1f, 0.4f);
                }
                break;

            case MainNavButtonState.UNAVAILABLE:
                Image.sprite = UnavailableSprite;
                setInteractable(isInteractable: false);
                break;
            }
            if (ChangeAlphaOnDisable && newState != MainNavButtonState.DISABLED)
            {
                Image.color = Color.white;
            }
            state = newState;
        }
        public override void setState(MainNavButtonState newState)
        {
            switch (newState)
            {
            case MainNavButtonState.NORMAL:
                SetButtonEnabled(enabled: true);
                break;

            case MainNavButtonState.SELECTED:
            {
                Image.sprite = SelectedSprite;
                SetButtonEnabled(enabled: false);
                for (int i = 0; i < mainNavButtons.Length; i++)
                {
                    if (mainNavButtons[i] != this && mainNavButtons[i].State == MainNavButtonState.SELECTED)
                    {
                        if (!mainNavButtons[i].GetComponent <Button>().IsInteractable())
                        {
                            mainNavButtons[i].setState(MainNavButtonState.DISABLED);
                        }
                        else
                        {
                            mainNavButtons[i].setState(MainNavButtonState.NORMAL);
                        }
                    }
                }
                break;
            }

            case MainNavButtonState.DISABLED:
            case MainNavButtonState.UNAVAILABLE:
                SetButtonEnabled(enabled: false);
                break;
            }
            if (ChangeAlphaOnDisable && newState != MainNavButtonState.DISABLED)
            {
                Image.color = Color.white;
            }
            state = newState;
        }