public static LegoProgressbarMeta Create(YuLegoProgressbar legoProgressbar) { var meta = new LegoProgressbarMeta(); var rect = legoProgressbar.RectTransform; meta.Transition = legoProgressbar.transition.ToString() .AsEnum <LegoTransition>(); meta.ColorTintMeta = LegoColorTintMeta.Create(legoProgressbar); var imageBackground = rect.Find("Background"); meta.BackgroundImageRect = LegoRectTransformMeta.Create(imageBackground.RectTransform()); meta.BackgroundImageMeta = LegoImageMeta.Create(imageBackground.GetComponent <YuLegoImage>()); var rectFillArea = rect.Find("Fill Area"); meta.FillAreaMeta = LegoRectTransformMeta.Create(rectFillArea.RectTransform()); var iamgeFill = rect.Find("Fill Area/Fill"); meta.FillImageRect = LegoRectTransformMeta.Create(iamgeFill.RectTransform()); meta.FillImageMeta = LegoImageMeta.Create(iamgeFill.GetComponent <YuLegoImage>()); return(meta); }
public override void Metamorphose(LegoUIMeta uiMeta) { if (MetamorphoseStage == LegoMetamorphoseStage.Completed) { MetamorphoseStage = LegoMetamorphoseStage.Metamorphosing; } if (progressbarMeta == null) { progressbarMeta = uiMeta.NextProgressbar; RectMeta = uiMeta.CurrentRect; } switch (progressbarStatus) { case YuProgressbarMetamorphoseStatus.Progressbar: MetamorphoseRect(RectMeta); progressbarStatus = YuProgressbarMetamorphoseStatus.ImageBackground; break; case YuProgressbarMetamorphoseStatus.ImageBackground: ImageBackground.Metamorphose(progressbarMeta.BackgroundImageRect, progressbarMeta.BackgroundImageMeta); progressbarStatus = YuProgressbarMetamorphoseStatus.RectTransform_FillArea; break; case YuProgressbarMetamorphoseStatus.RectTransform_FillArea: YuLegoUtility.MetamorphoseRect(RectFillArea, progressbarMeta.FillAreaMeta); progressbarStatus = YuProgressbarMetamorphoseStatus.Image_Fill; break; case YuProgressbarMetamorphoseStatus.Image_Fill: ImageFill.Metamorphose(progressbarMeta.FillImageRect, progressbarMeta.FillImageMeta); progressbarMeta = null; progressbarStatus = YuProgressbarMetamorphoseStatus.Progressbar; MetamorphoseStage = LegoMetamorphoseStage.Completed; break; default: throw new ArgumentOutOfRangeException(); } }
private void AddProgressBarMeta(Transform transform) { var progressbarMeta = LegoProgressbarMeta.Create(transform.GetComponent <YuLegoProgressbar>()); ProgressbarMetas.Add(progressbarMeta); }