public static LegoToggleMeta Create(YuLegoToggle toggle)
        {
            var rect = toggle.RectTransform;
            var meta = new LegoToggleMeta
            {
                Interactable  = toggle.interactable,
                Transition    = toggle.transition.ToString().AsEnum <LegoTransition>(),
                ColorTintMeta = LegoColorTintMeta.Create(toggle),
                SoundId       = toggle.SoundEffectId
            };

            var background = rect.Find("Background");

            meta.BackgroundRectMeta  = LegoRectTransformMeta.Create(background.RectTransform());
            meta.BackgroundImageMeta = LegoImageMeta.Create(background.GetComponent <YuLegoImage>());

            var checkmark = rect.Find("Background/Checkmark");

            meta.CheckmarkRectMeta  = LegoRectTransformMeta.Create(checkmark.RectTransform());
            meta.CheckMarkImageMeta = LegoImageMeta.Create(checkmark.GetComponent <YuLegoImage>());

            var text = rect.Find("Text");

            meta.TextRect = LegoRectTransformMeta.Create(text.RectTransform());
            meta.TextMeta = LegoTextMeta.Create(text.GetComponent <YuLegoText>());

            return(meta);
        }
Beispiel #2
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();
            }
        }
Beispiel #3
0
        private void AddToggleMeta(Transform transform)
        {
            var toggleMeta = LegoToggleMeta.Create(transform.GetComponent <YuLegoToggle>());

            ToggleMetas.Add(toggleMeta);
        }