public override void Metamorphose(LegoUIMeta uiMeta) { if (MetamorphoseStage == LegoMetamorphoseStage.Completed) { MetamorphoseStage = LegoMetamorphoseStage.Metamorphosing; } if (ButtonMeta == null) { ButtonMeta = uiMeta.NextButton; RectMeta = uiMeta.CurrentRect; } switch (metamorphoseStatus) { // 按钮自身变形 case MetamorphoseStatus.Button: MetamorphoseRect(RectMeta); if (ButtonMeta.TransitionType == LegoTransition.ColorTint && ButtonMeta.ColorTintMeta != null) { var colorTintMeta = ButtonMeta.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 = ButtonMeta.ButtonSoundId; metamorphoseStatus = MetamorphoseStatus.ButtonImage; break; case MetamorphoseStatus.ButtonImage: // 按钮附带的Image变形 BgImage.As <YuLegoImage>().Metamorphose(ButtonMeta.ButtonImageMeta); if (ButtonMeta.IsNonRectangularButtonImage) { IsNonRectangularButtonImage = true; BgImage.As <YuLegoImage>().alphaHitTestMinimumThreshold = ButtonMeta.ImageAlphaHitTestMinimumThreshold; } metamorphoseStatus = MetamorphoseStatus.SonText; break; case MetamorphoseStatus.SonText: if (ButtonMeta.IsTextActive) { SonText.gameObject.SetActive(true); SonText.Metamorphose(ButtonMeta.TextRect, ButtonMeta.TextMeta); } else { SonText.gameObject.SetActive(false); } metamorphoseStatus = MetamorphoseStatus.Button; MetamorphoseStage = LegoMetamorphoseStage.Completed; break; } }
public override void Metamorphose(LegoUIMeta uiMeta) { if (MetamorphoseStage == LegoMetamorphoseStage.Completed) { MetamorphoseStage = LegoMetamorphoseStage.Metamorphosing; } if (tButtonMeta == null) { tButtonMeta = uiMeta.NextTButton; RectMeta = uiMeta.CurrentRect; } switch (tButtonStatus) { // 按钮自身变形 case YuTButtonMetamorphoseStatus.Button: MetamorphoseRect(RectMeta); if (tButtonMeta.TransitionType == LegoTransition.ColorTint && tButtonMeta.ColorTintMeta != null) { var colorTintMeta = tButtonMeta.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 }; } tButtonStatus = YuTButtonMetamorphoseStatus.ButtonImage; break; case YuTButtonMetamorphoseStatus.ButtonImage: // 按钮附带的Image变形 BgImage.As <YuLegoImage>().Metamorphose(tButtonMeta.ButtonImageMeta); tButtonStatus = YuTButtonMetamorphoseStatus.IconImage; break; case YuTButtonMetamorphoseStatus.IconImage: IconImage.As <YuLegoImage>().Metamorphose(tButtonMeta.IconRectMeta, tButtonMeta.IconImageMeta); tButtonStatus = YuTButtonMetamorphoseStatus.SonText; break; case YuTButtonMetamorphoseStatus.SonText: if (tButtonMeta.IsTextActive) { SonText.gameObject.SetActive(true); SonText.Metamorphose(tButtonMeta.TextRect, tButtonMeta.TextMeta); } else { SonText.gameObject.SetActive(false); } tButtonMeta = null; tButtonStatus = YuTButtonMetamorphoseStatus.Button; MetamorphoseStage = LegoMetamorphoseStage.Completed; break; default: throw new ArgumentOutOfRangeException(); } }