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();
            }
        }
Beispiel #3
0
        private void AddProgressBarMeta(Transform transform)
        {
            var progressbarMeta = LegoProgressbarMeta.Create(transform.GetComponent <YuLegoProgressbar>());

            ProgressbarMetas.Add(progressbarMeta);
        }