コード例 #1
0
        public void Invoke(UIAnimationFramework effects)
        {
            foreach (RectMoveAnimationSingle m in move)
            {
                effects.Move(m.rect, m.point, m.time);
            }

            foreach (RectScaleAnimationSingle s in scale)
            {
                effects.Scale(s.rect, s.point, s.time);
            }

            foreach (RectRotateAnimationSingle a in rotate)
            {
                effects.Rotate(a.rect, Quaternion.Euler(a.rotation), a.time, a.delay);
            }

            foreach (TextFadeAnimationSingle a in textFade)
            {
                effects.Fade(a.text, a.color, a.time, a.delay);
            }

            foreach (ImageFadeAnimationSingle a in imageFade)
            {
                effects.Fade(a.image, a.color, a.time, a.delay);
            }

            foreach (ImageFillAnimationSingle a in imageFill)
            {
                effects.Fill(a.image, a.value, a.time, a.delay);
            }

            foreach (CanvasGroupFadeAnimationSingle a in cg)
            {
                effects.Fade(a.cg, a.value, a.time, a.delay);
            }
        }
コード例 #2
0
        private void Animate()
        {
            if (effect == null)
            {
                effect = GameObject.FindObjectOfType <UIAnimationFramework>();
            }

            OnStart.Invoke(new UIAnimation.UIAnimationEvent(name, isOpen, id));

            if ((moveAnimations.Count + scaleAnimations.Count + rotateAnimation.Count + textFadeAnimations.Count + imageFadeAnimations.Count + imageFillAnimations.Count + canvasGroupFadeAnimation.Count) == 0)
            {
                OnEnd.Invoke(new UIAnimation.UIAnimationEvent(name, isOpen, id));
                return;
            }

            bool first = true;

            foreach (UIAnimation.RectMoveAnimation move in moveAnimations)
            {
                Vector3 point     = (isOpen) ? move.open : move.close;
                float   animDelay = (isOpen) ? move.openDelay : move.closeDelay;

                if (first)
                {
                    //Only fire OnOver event one time.
                    effect.Move(move.rect, point, time, delay + animDelay, OnOver, curve);
                    first = false;
                }
                else
                {
                    effect.Move(move.rect, point, time, delay + animDelay, null, curve);
                }
            }

            foreach (UIAnimation.RectScaleAnimation scale in scaleAnimations)
            {
                Vector3 point     = (isOpen) ? scale.open : scale.close;
                float   animDelay = (isOpen) ? scale.openDelay : scale.closeDelay;

                if (first)
                {
                    //Only fire OnOver event one time.
                    effect.Scale(scale.rect, point, time, delay + animDelay, OnOver, curve);
                    first = false;
                }
                else
                {
                    effect.Scale(scale.rect, point, time, delay + animDelay, null, curve);
                }
            }

            foreach (UIAnimation.RectRotateAnimation rotate in rotateAnimation)
            {
                Vector3 point     = (isOpen) ? rotate.open : rotate.close;
                float   animDelay = (isOpen) ? rotate.openDelay : rotate.closeDelay;

                if (first)
                {
                    //Only fire OnOver event one time.
                    effect.Rotate(rotate.rect, Quaternion.Euler(point), time, delay + animDelay, OnOver, curve);
                    first = false;
                }
                else
                {
                    effect.Rotate(rotate.rect, Quaternion.Euler(point), time, delay + animDelay, null, curve);
                }
            }

            foreach (UIAnimation.TextFadeAnimation fade in textFadeAnimations)
            {
                Color color     = (isOpen) ? fade.open : fade.close;
                float animDelay = (isOpen) ? fade.openDelay : fade.closeDelay;

                if (first)
                {
                    //Only fire OnOver event one time.
                    effect.Fade(fade.text, color, time, delay + animDelay, OnOver, curve);
                    first = false;
                }
                else
                {
                    effect.Fade(fade.text, color, time, delay + animDelay, null, curve);
                }
            }

            foreach (UIAnimation.ImageFadeAnimation image in imageFadeAnimations)
            {
                Color color     = (isOpen) ? image.open : image.close;
                float animDelay = (isOpen) ? image.openDelay : image.closeDelay;

                if (first)
                {
                    //Only fire OnOver event one time.
                    effect.Fade(image.image, color, time, delay + animDelay, OnOver, curve);
                    first = false;
                }
                else
                {
                    effect.Fade(image.image, color, time, delay + animDelay, null, curve);
                }
            }

            foreach (UIAnimation.ImageFillAnimation img in imageFillAnimations)
            {
                float value     = (isOpen) ? img.open : img.close;
                float animDelay = (isOpen) ? img.openDelay : img.closeDelay;

                if (first)
                {
                    //Only fire OnOver event one time.
                    effect.Fill(img.image, value, time, delay + animDelay, OnOver, curve);
                    first = false;
                }
                else
                {
                    effect.Fill(img.image, value, time, delay + animDelay, null, curve);
                }
            }

            foreach (UIAnimation.CanvasGroupFadeAnimation cg in canvasGroupFadeAnimation)
            {
                float visible   = (isOpen) ? cg.open : cg.close;
                float animDelay = (isOpen) ? cg.openDelay : cg.closeDelay;

                if (first)
                {
                    //Only fire OnOver event one time.
                    effect.Fade(cg.cg, visible, time, delay + animDelay, OnOver, curve);
                    first = false;
                }
                else
                {
                    effect.Fade(cg.cg, visible, time, delay + animDelay, null, curve);
                }
            }
        }