Esempio n. 1
0
        public override void Metamorphose(LegoUIMeta uiMeta)
        {
            if (MetamorphoseStage == LegoMetamorphoseStage.Completed)
            {
                MetamorphoseStage = LegoMetamorphoseStage.Metamorphosing;
            }

            if (toggleMeta == null)
            {
                toggleMeta = uiMeta.NextToggle;
                RectMeta   = uiMeta.CurrentRect;
            }

            switch (metamorphoseStatus)
            {
            case YuLegoToggleMetamorphoseStatus.Toggle:
                YuLegoUtility.MetamorphoseRect(RectTransform, uiMeta.CurrentRect);

                if (toggleMeta.Transition == LegoTransition.ColorTint)
                {
                    var colorTintMeta = toggleMeta.ColorTintMeta;

                    colors = new ColorBlock
                    {
                        normalColor      = colorTintMeta.NormalLegoColor.ToColor(),
                        highlightedColor = colorTintMeta.HighlightedLegoColor.ToColor(),
                        pressedColor     = colorTintMeta.PressedLegoColor.ToColor(),
                        disabledColor    = colorTintMeta.DisabledLegoColor.ToColor(),
                        colorMultiplier  = colorTintMeta.ColorMultiplier,
                        fadeDuration     = colorTintMeta.FadeDuration
                    };
                }

                SoundEffectId      = toggleMeta.SoundId;
                metamorphoseStatus = YuLegoToggleMetamorphoseStatus.ImageBackground;
                break;

            case YuLegoToggleMetamorphoseStatus.ImageBackground:
                BackgroundImage.Metamorphose(toggleMeta.BackgroundRectMeta,
                                             toggleMeta.BackgroundImageMeta);
                metamorphoseStatus = YuLegoToggleMetamorphoseStatus.ImageCheck;
                break;

            case YuLegoToggleMetamorphoseStatus.ImageCheck:
                CheckmarkImage.Metamorphose(toggleMeta.CheckmarkRectMeta,
                                            toggleMeta.CheckMarkImageMeta);
                metamorphoseStatus = YuLegoToggleMetamorphoseStatus.SonText;
                break;

            case YuLegoToggleMetamorphoseStatus.SonText:
                metamorphoseStatus = YuLegoToggleMetamorphoseStatus.Toggle;
                Text.Metamorphose(toggleMeta.TextRect, toggleMeta.TextMeta);

                toggleMeta         = null;
                metamorphoseStatus = YuLegoToggleMetamorphoseStatus.Toggle;
                MetamorphoseStage  = LegoMetamorphoseStage.Completed;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }