///<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); }
///<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); }
///<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); }
///<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; } }