Beispiel #1
0
        ///<summary>If the position, rotation and scale finhised animating</summary>
        public static bool IsPTweenInstanceFinished(PTweenInstance instance)
        {
            bool finished = true;

            switch (instance.AnimationDirection)
            {
            case PTweenAnimationDirection.ANIMATE_FORWARD:
                if (instance.Position.Animate && instance.Position.CurrenTime < 1 ||
                    instance.Rotation.Animate && instance.Rotation.CurrenTime < 1 ||
                    instance.Scale.Animate && instance.Scale.CurrenTime < 1 ||
                    instance.Alpha.Animate && instance.Alpha.CurrenTime < 1)
                {
                    finished = false;
                }
                break;

            case PTweenAnimationDirection.ANIMATE_BACKWARD:
                if (instance.Position.Animate && instance.Position.CurrenTime > 0 ||
                    instance.Rotation.Animate && instance.Rotation.CurrenTime > 0 ||
                    instance.Scale.Animate && instance.Scale.CurrenTime > 0 ||
                    instance.Alpha.Animate && instance.Alpha.CurrenTime > 0)
                {
                    finished = false;
                }
                break;
            }

            return(finished);
        }
Beispiel #2
0
        ///<summary>Creates a new PTweenInstance with the components value to be animated</summary>
        public static PTweenInstance PlayTweenComponent(PTweenComponent ptweenComponent, PTweenAnimationDirection animationDirection)
        {
            PTweenInstance instance = CreateNewPTWeenInstance(ptweenComponent);

            instance.AnimationDirection = animationDirection;
            ResetPTweenInstance(instance);
            return(instance);
        }
Beispiel #3
0
        ///<summary>Creates and return a new PTweenInstance with the components value</summary>
        public static PTweenInstance CreateNewPTWeenInstance(PTweenComponent ptweeComponent)
        {
            PTweenInstance instance = new PTweenInstance();

            instance.Target = ptweeComponent;

            instance.Position = new PTweenTransformClip();
            instance.Rotation = new PTweenTransformClip();
            instance.Scale    = new PTweenTransformClip();
            instance.Alpha    = new PtweenAlphaClip();

            instance.Position.From     = ptweeComponent.Position.From;
            instance.Position.To       = ptweeComponent.Position.To;
            instance.Position.Curve    = ptweeComponent.Position.Curve;
            instance.Position.Duration = ptweeComponent.Position.Duration;
            instance.Position.Animate  = ptweeComponent.Position.Animate;
            instance.Position.Delay    = ptweeComponent.Position.Delay;

            instance.Rotation.From     = ptweeComponent.Rotation.From;
            instance.Rotation.To       = ptweeComponent.Rotation.To;
            instance.Rotation.Curve    = ptweeComponent.Rotation.Curve;
            instance.Rotation.Duration = ptweeComponent.Rotation.Duration;
            instance.Rotation.Animate  = ptweeComponent.Rotation.Animate;
            instance.Rotation.Delay    = ptweeComponent.Rotation.Delay;

            instance.Scale.From     = ptweeComponent.Scale.From;
            instance.Scale.To       = ptweeComponent.Scale.To;
            instance.Scale.Curve    = ptweeComponent.Scale.Curve;
            instance.Scale.Duration = ptweeComponent.Scale.Duration;
            instance.Scale.Animate  = ptweeComponent.Scale.Animate;
            instance.Scale.Delay    = ptweeComponent.Scale.Delay;

            instance.Alpha.From        = ptweeComponent.Alhpa.From;
            instance.Alpha.To          = ptweeComponent.Alhpa.To;
            instance.Alpha.Curve       = ptweeComponent.Alhpa.Curve;
            instance.Alpha.Duration    = ptweeComponent.Alhpa.Duration;
            instance.Alpha.Animate     = ptweeComponent.Alhpa.Animate;
            instance.Alpha.Delay       = ptweeComponent.Alhpa.Delay;
            instance.Alpha.CanvasGroup = ptweeComponent.Alhpa.CanvasGroup;

            instance.Finished = false;

            return(instance);
        }
Beispiel #4
0
        ///<sumary>Resets the instance Position, Rotation and Scale</summary>
        public static void ResetPTweenInstance(PTweenInstance instance)
        {
            Vector3 resetVector = new Vector3();
            float   resetFloat  = 0;

            //RESET POSITION
            if (instance.Position.Animate)
            {
                if (instance.AnimationDirection == PTweenAnimationDirection.ANIMATE_FORWARD)
                {
                    resetVector = instance.Position.From;
                }
                else
                {
                    resetVector = instance.Position.To;
                }

                instance.Position.CurrenTime            = (instance.AnimationDirection == PTweenAnimationDirection.ANIMATE_FORWARD) ? 0 : 1;
                instance.Target.transform.localPosition = resetVector;
            }
            //RESET SCALE
            if (instance.Scale.Animate)
            {
                if (instance.AnimationDirection == PTweenAnimationDirection.ANIMATE_FORWARD)
                {
                    resetVector = instance.Scale.From;
                }
                else
                {
                    resetVector = instance.Scale.To;
                }

                instance.Scale.CurrenTime            = (instance.AnimationDirection == PTweenAnimationDirection.ANIMATE_FORWARD) ? 0 : 1;
                instance.Target.transform.localScale = resetVector;
            }
            //RESET ROTATION
            if (instance.Rotation.Animate)
            {
                if (instance.AnimationDirection == PTweenAnimationDirection.ANIMATE_FORWARD)
                {
                    resetVector = instance.Rotation.From;
                }
                else
                {
                    resetVector = instance.Rotation.To;
                }

                instance.Rotation.CurrenTime       = (instance.AnimationDirection == PTweenAnimationDirection.ANIMATE_FORWARD) ? 0 : 1;
                instance.Target.transform.rotation = Quaternion.Euler(resetVector);
            }

            //RESET ALPHA
            if (instance.Alpha.Animate)
            {
                if (instance.AnimationDirection == PTweenAnimationDirection.ANIMATE_FORWARD)
                {
                    resetFloat = instance.Alpha.From;
                }
                else
                {
                    resetFloat = instance.Alpha.To;
                }

                instance.Alpha.CurrenTime        = (instance.AnimationDirection == PTweenAnimationDirection.ANIMATE_FORWARD) ? 0 : 1;
                instance.Alpha.CanvasGroup.alpha = resetFloat;
            }
        }