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); }
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(); } }
private void AddToggleMeta(Transform transform) { var toggleMeta = LegoToggleMeta.Create(transform.GetComponent <YuLegoToggle>()); ToggleMetas.Add(toggleMeta); }