public static LegoTButtonMeta Create(YuLegoTButton button) { var meta = new LegoTButtonMeta { Interactable = button.interactable, TransitionType = button.transition.ToString().AsEnum <LegoTransition>() }; switch (meta.TransitionType) { case LegoTransition.None: break; case LegoTransition.ColorTint: meta.ColorTintMeta = LegoColorTintMeta.Create(button); break; case LegoTransition.SpriteSwap: meta.SpriteSwapMeta = LegoSpriteSwapMeta.create(button); break; case LegoTransition.Animation: break; default: throw new ArgumentOutOfRangeException(); } // 按钮上的图片 meta.ButtonImageMeta = LegoImageMeta.Create(button.BgImage.As <YuLegoImage>()); // 子文本 meta.IsTextActive = button.SonText.gameObject.activeSelf; meta.TextRect = LegoRectTransformMeta.Create(button.SonText.rectTransform); meta.TextMeta = LegoTextMeta.Create(button.SonText); // 图标图片 meta.IconRectMeta = LegoRectTransformMeta.Create(button.IconImage.RectTransform); meta.IconImageMeta = LegoImageMeta.Create(button.IconImage.As <YuLegoImage>()); return(meta); }
public static LegoSpriteSwapMeta create(Selectable selectable) { var meta = new LegoSpriteSwapMeta(); var spriteState = selectable.spriteState; if (selectable.targetGraphic == null && spriteState.highlightedSprite == null && spriteState.pressedSprite == null && spriteState.disabledSprite == null ) { meta.NoSprite = true; } else { meta.TargetGraphic = selectable.targetGraphic == null ? null : selectable.targetGraphic.name; meta.HighlightedSprite = spriteState.highlightedSprite == null ? null : spriteState.highlightedSprite.name; meta.PressedSprite = spriteState.pressedSprite == null ? null : spriteState.pressedSprite.name; meta.DisabledSprite = spriteState.pressedSprite == null ? null : spriteState.pressedSprite.name; } return(meta); }