## [1.3.0] - 2025-04-04 ### Added - Add support for updating animations in LateUpdate with the help of the new 'UpdateType updateType' parameter. The available options are Update, LateUpdate, and FixedUpdate. https://github.com/KyryloKuzyk/PrimeTween/issues/138 - Add 'Vector3' overloads to RotationAtSpeed() and LocalRotationAtSpeed() methods. - Add 'TextFontSize()' to animate 'TextMeshPro.fontSize' property. https://github.com/KyryloKuzyk/PrimeTween/discussions/129 - Add a message to the exception thrown when an invalid ease is provided to `StandardEasing.Evaluate()`. https://github.com/KyryloKuzyk/PrimeTween/issues/151 ### Changed - Change 'bool useFixedUpdate' to 'UpdateType updateType'. The new version comes with an automatic script updater. Please back up your project before updating. - Make the exception stack trace clickable when custom tween throws an exception. https://github.com/KyryloKuzyk/PrimeTween/issues/119 - Prevent allocations in development builds when PRIME_TWEEN_SAFETY_CHECKS is enabled. ## [1.2.2] - 2024-12-05 ### Fixed - Fixed: TextMeshPro animations are not available in Unity 2023. Bug report: https://discussions.unity.com/t/primetween-high-performance-animations-and-sequences/926420/365 - Fixed: Demo project produces compilation errors if Ugui package is not installed. ## [1.2.1] - 2024-11-28 ### Fixed - Fixed: when a new tween is created at the last frame of `ToYieldInstruction()`, coroutine will wait for the wrong tween. Bug report: https://github.com/KyryloKuzyk/PrimeTween/issues/126 ## [1.2.0] - 2024-10-03 ### Fixed - Fixed: sequence.Group() doesn't work correctly after ChainCallback() and InsertCallback(). More info: https://github.com/KyryloKuzyk/PrimeTween/discussions/112 ## [1.1.22] - 2024-09-14 ### Added - Add `Easing.Evaluate(float interpolationFactor, Ease ease)` method that gives the ability to evaluate standard eases manually. Previously this method was experimental. ### Fixed - Fixed: destroying target of a paused tween doesn't release the tween. Bug report: https://github.com/KyryloKuzyk/PrimeTween/discussions/4#discussioncomment-10555636 - Fixed: UPM examples are not compatible with Input System (New). ## [1.1.21] - 2024-08-31 ### Added - Implement GetHashCode() and IEquatable for Tween and Sequence. ## [1.1.20] - 2024-08-12 ### Changed - Change internal tween from 'int' to 'long', which reduces the likelihood of id collisions in apps that run for months or years. Feature request: https://discussions.unity.com/t/926420/291 ### Added - Add 'setImmediately' and 'isRelative' parameters to From() method in [Adapter](https://github.com/KyryloKuzyk/PrimeTween#dotween-adapter). Feature request: https://discussions.unity.com/t/926420/299 ### Fixed - Fixed: Demo scene doesn't work with Input System (New). Bug report: https://github.com/KyryloKuzyk/PrimeTween/issues/85 - Fixed (minor): calling Sequence.Complete() when the sequence is in Stater.After doesn't complete the sequence immediately. ## [1.1.19] - 2024-05-29 ### Fixed - Fixed: Tween.TextMaxVisibleCharacters() is not available in Unity 6 because Text Mesh Pro was merged with UGUI. ## [1.1.18] - 2024-05-11 ### Fixed - Fixed: nested sequence updates its children even when it doesn't update self. This resulted in multiple chained jumps to override the first jump. Bug report: https://forum.unity.com/threads/primetween-high-performance-animations-and-sequences.1479609/page-6#post-9802575 ## [1.1.17] - 2024-04-17 ### Fixed - Fixed: Tween.TextMaxVisibleCharacters() throws assertion exception. ## [1.1.16] - 2024-04-16 ### Fixed - Fixed: interpolation factor can be calculated incorrectly when cyclic tween is not started yet. Bug report: https://github.com/KyryloKuzyk/PrimeTween/issues/63 - Fixed: don't log an error when the child animation setting is the same as the parent Sequence's setting. Bug report: https://github.com/KyryloKuzyk/PrimeTween/issues/66 - Fixed: enabling PRIME_TWEEN_SAFETY_CHECKS in IL2CPP builds throws exception. Bug report: https://github.com/KyryloKuzyk/PrimeTween/issues/65 - Fixed: adding experimental define produces compilation error. ## [1.1.15] - 2024-04-07 ### Fixed - Fixed: Tween.GetTweenCount(target) doesn't work for tweens inside sequences. Bug report: https://github.com/KyryloKuzyk/PrimeTween/issues/60 - Fixed: ShakeSettings.strength property incorrectly displayed in narrow Inspector. - Fixed: sometimes automatic installation fails and users have to press the 'PrimeTweenInstaller/Install' button to fix it. - Fixed: review request should appear only after the user presses the Update button in Package Manager. Bug report: https://github.com/KyryloKuzyk/PrimeTween/issues/58 ## [1.1.14] - 2024-03-16 ### Added - Add Tween.VisualElementColor/VisualElementBackgroundColor() to animate colors of UIToolkit components. - Experimental: add 'double' numeric type support for Tween.Custom(). This feature requires the PRIME_TWEEN_EXPERIMENTAL define in 'Scripting Define Symbols'. ### Changed - Improve documentation. ## [1.1.13] - 2024-02-23 ### Added - Add sequence.Pause/Play() to adapter. ### Changed - If sequence child pauses the parent sequence, stop updating Sequence immediately. Other tweens after the current one will not receive an update. ## [1.1.12] - 2024-02-14 ### Added - Add experimental Easing.Evaluate(float, Ease). - Add DOVirtual.EasedValue() to adapter. - Add custom Ease.OutBounce strength support to adapter. ### Changed - The 'warnEndValueEqualsCurrent' setting is now applied on a per-tween basis. Feature request: https://github.com/KyryloKuzyk/PrimeTween/discussions/48 ## [1.1.11] - 2024-01-18 ### Fixed - Fixed: calling PrimeTweenConfig.SetTweensCapacity() before PrimeTweenManager is created throws an exception in Editor. ### Changed - Optimize duplicated shakes on the same target. ## [1.1.10] - 2024-01-15 ### Added - Add sequence.Insert() and sequence.InsertCallback() APIs. Feature request: https://github.com/KyryloKuzyk/PrimeTween/discussions/33 - Add Asset Store review request when updating PrimeTween to a new version. ### Fixed - Fixed: completing an infinite tween (cycles == -1) evaluates the interpolation factor to -1 and produces wrong animated value. Bug report: https://github.com/KyryloKuzyk/PrimeTween/issues/38 ### Changed - sequence.Complete() now respects the 'cycles' and 'cycleMode' and works similarly to tween.Complete(). Previuosly, sequence.Complete() completed only the current cycle. ### Removed - Remove Tween.PositionOutBounce() experimental API. Use Easing.BounceExact(float amplitude) instead. ## [1.1.9] - 2024-01-09 ### Added - [Adapter](https://github.com/KyryloKuzyk/PrimeTween#dotween-adapter): add 'loopType' parameter to sequence.SetLoops(); add sequence.SetEase(); add SetLink(). ### Fixed - Fixed: sequence.Group() after seqence.Chain() produces a wrong sequence duration (too short) if a grouped tween is longer than the previously chained tween. - Fixed: sequence.Group(sequence) groups with the first tween in sequence, but should group with the previous tween (or sequence) instead. Now it works the same way as sequence.Group(tween). - Fixed: sequence.OnComplete() should be called when all sequence children are completed. Previously it was called before the last children update. - Fixed: setting 'elapsedTime' or 'progress' recursively from Tween.Custom() or tween.OnUpdate() leads to a crash because of stack overflow. ### Changed - Remove the 'useUnscaledTime' parameter from sequence.ChainDelay(). The parent Sequence controls the 'useUnscaledTime' of all children tweens and sequences, so this parameter is not needed. ## [1.1.8] - 2024-01-05 ### Added: - Add more detailed warnings and errors. ### Fixed - Fixed: Demo.cs causes compilation error, preventing PrimeTween to install correctly. ## [1.1.7] - 2024-01-02 ### Fixed - Fixed: ReusableTween.updateSequence() throws AssertionException when a sequence is running during scene change in the Editor. Bug report: https://github.com/KyryloKuzyk/PrimeTween/issues/32 ## [1.1.6] - 2023-12-29 ### Added: - PrimeTween can now print tween's creation stack trace when an error occurs to make the debugging process a lot easier. This feature requires the 'PRIME_TWEEN_SAFETY_CHECKS' define. - Add TypewriterAnimatorExample.TypewriterAnimationByWords() to the Demo scene to show an example of how to animate text word-by-word. ### Fixed - Fixed: shake doesn't restore the position to the initial value if shake's period is less than duration. ## [1.1.5] - 2023-12-14 ### Added: - Add Tween.TextMaxVisibleCharacters(TMP_Text target, ...) method to support simple typewriter animation. Please see the 'Demo.TypewriterAnimatorExample.cs' for a more complex example of text animation that makes pauses after punctuations. ### Fixed - Fixed: don't allow to set invalid elapsedTimeTotal and progressTotal values to infinite tweens. ## [1.1.4] - 2023-12-10 ### Added: - Tween/Sequence.timeScale can now be negative to support backward movement (rewind). - Add 'useFixedUpdate' parameter to update a tween or sequence in the FixedUpdate(). - Release Parametric Easing to production (previously this feature was experimental): https://github.com/KyryloKuzyk/PrimeTween#parametric-easing ### Changed - The default 'easeBetweenShakes' is now Ease.OutQuad instead of Ease.OutSine. - The 'useUnscaledTime' parameter now doesn't prevent the abrupt delta time changes when unpausing the Editor to be consistent with the official Unity's behavior. ### Fixed - Fixed: shakes log the 'warnEndValueEqualsCurrent' warning if object's local position/rotation is Vector3.zero/Quaternion.identity. ## [1.1.3] - 2023-12-06 ### Added: - Add Sequence.OnComplete() API. ### Fixed - Fixed: nesting multiple empty Sequences may lead to a StackOverflow exception in some cases. - Fixed: enabling/disabling UI.Slider in Demo scene constantly allocates GC. ## [1.1.2] - 2023-12-03 ### Added: - Add 'PrimeTweenConfig.warnEndValueEqualsCurrent' setting to warn if the 'endValue' equals to the current animated value. ### Fixed - Fixed: PrimeTween may log warnings in Editor when exiting Play Mode. ## [1.1.1] - 2023-11-30 ### Added: - Sequences now support CycleMode.Yoyo and CycleMode.Rewind with the help of Sequence.Create(numCycles, CycleMode **cycleMode**). - Sequences now support easing that can be applied to the whole Sequence with the help of Sequence.Create(..., Ease **sequenceEase**). - 'elapsedTime', 'elapsedTimeTotal', 'progress', and 'progressTotal' properties now have setters, so it's possible to manually set the elapsed time of tweens and sequences. Please see the Demo scene for usage example. - Parent Sequence now controls the isPaused, timeScale, and useUnscaledTime of all its children tweens and sequences. - Add a warning when tween.SetRemainingCycles() is called on Tween.Delay(). More info: https://discussions.unity.com/t/926420/101. ### Changed - It's no longer allowed to Stop()/Complete() a tween inside a Sequence. Please Stop()/Complete() the parent Sequence instead. - It's no longer allowed to await or use the '.ToYieldInstruction()' on tween inside a Sequence. Please use the parent Sequence instead. - It's no longer allowed to add tweens to a started Sequence. - It's now allowed to call Tween.StopAll(), Tween.CompleteAll() and Tween.SetPausedAll() from onValueChange, OnUpdate() and OnComplete(). - SetCycles() was renamed to SetRemainingCycles(). To set Sequence cycles, use Sequence.Create(cycles: numCycles). - Remove 'minExpected' and 'numMaxExpected' parameters from Tween.StopAll/CompleteAll/SetPausedAll() methods. ### Fixed - Fixed: Tween.GetTweensCount() may return the incorrect result if called from the OnComplete() callback. - Fixed: MeasureMemoryAllocations.cs example script doesn't ignore its own allocations. ## [1.0.17] - 2023-11-12 ### Fixed - Fixed: the Demo scene doesn't compile if PrimeTween is not installed. ## [1.0.16] - 2023-11-04 ### Fixed - Fixed: Quaternion tweens don't work correctly with CycleMode.Incremental. Bug report: https://github.com/KyryloKuzyk/PrimeTween/issues/19 ## [1.0.15] - 2023-10-14 ### Fixed - Fixed: the first time Sequence is created, it may play incorrectly in some cases. ## [1.0.14] - 2023-10-02 ### Added - Add methods to animate RectTransform.offsetMin/offsetMax. - Add sequence.timeScale to set the timeScale for all tweens in a Sequence. - Add Tween.TweenTimeScale(Sequence) method to animate sequence.timeScale over time. ### Fixed - Fixed: Unity's Time.unscaledDeltaTime reports the wrong value after unpausing a scene in the Editor. ## [1.0.13] - 2023-09-24 ### Fixed - Fixed: passing a null UnityEngine.Object to 'Tween.' methods causes null ref exception in PrimeTweenManager.Update(). Bug report: https://github.com/KyryloKuzyk/PrimeTween/issues/13 ## [1.0.12] - 2023-09-22 ### Added - Experimental: add parametric Easing.Bounce(float strength) and Easing.BounceExact(float magnitude). BounceExact allows to specify the exact bounce amplitude in meters/degrees regardless of the total tween distance. This feature requires the PRIME_TWEEN_EXPERIMENTAL define. - Add From(fromValue) method to adapter. - Support parametric OutBack and OutElastic eases in the adapter. ### Changed - Easing.Elastic: normalize the oscillation period by duration; this ensures the tween has the same period regardless of duration. ## [1.0.11] - 2023-09-21 ### Added - Tween.GlobalTimeScale(), Tween.TweenTimeScale(), and tween.timeScale are no longer experimental. - Add tween.OnUpdate() to execute a custom callback when the animated value is updated. - Experimental: add Easing.Overshoot(float strength) and Easing.Elastic(float strength, float normalizedPeriod) methods to customize Ease.OutBounce and Ease.OutElastic. ### Changed - Tween methods now accept Easing struct instead of AnimationCurve. You can continue using AnimationCurve as before because it is implicitly converted to the Easing struct. - Ease.OutElastic now works the same as the most popular js and C# tween libraries. ### Fixed - Add PrimeTween.Demo namespace to Demo scripts. ## [1.0.10] - 2023-09-13 ### Added - Add Tween.XxxAtSpeed() methods to create animations based on speed instead of duration. - Add Tween.GetTweensCount() method. ### Changed - Improve performance. ## [1.0.9] - 2023-09-08 ### Changed - Tween.StopAll(null) and Tween.CompleteAll(null) now immediately clean the internal tweens list, so PrimeTweenConfig.SetTweensCapacity() can be called immediately after that. ### Fixed - Fixed: Tween.ShakeLocalRotation() doesn't work correctly. ## [1.0.8] - 2023-09-07 ### Added - Tween.Delay(), tween.OnComplete(), and sequence.ChainDelay() methods now accept the 'warnIfTargetDestroyed' parameter to control whether PrimeTween should log the error about tween's target destruction. More info: https://github.com/KyryloKuzyk/PrimeTween/discussions/4 ### Fixed - Fix compilation error with PRIME_TWEEN_DOTWEEN_ADAPTER. ## [1.0.7] - 2023-09-01 ### Added - Add 'UI Toolkit' support (com.unity.modules.uielements). All animations from the [ITransitionAnimations](https://docs.unity3d.com/2023.2/Documentation/ScriptReference/UIElements.Experimental.ITransitionAnimations.html) interface are supported. - Experimental: add Tween.PositionOutBounce/LocalPositionOutBounce() methods. These methods add the ability to fine-tune the Ease.OutBounce by specifying the exact bounce amplitude, number of bounces, and bounce stiffness. - Log error when properties of dead tweens and sequences are used. ### Changed - Rename 'Tween.LocalScale()' methods to 'Tween.Scale()'. - Rename 'IsAlive' to 'isAlive'. - Rename 'IsPaused' to 'isPaused'. ## [1.0.5] - 2023-08-29 ### Added - Experimental: add tween.timeScale; Tween.TweenTimeScale(); Tween.GlobalTimeScale(). ### Fixed - Fixed: onComplete callback should not be called if Tween.OnComplete(_target_, ...) has been destroyed. - Fixed: 'additive' tweens don't work correctly. ## [1.0.4] - 2023-08-22 ### Added - Warn if PrimeTween's API is used in Edit mode (when the scene is not running). - Experimental: additive tweens. ### Changed - Move Tween.Custom() 'AnimationCurve' parameter after 'onValueChange' parameter to be consistent with other overloads. - Move Tween.ShakeCustom/PunchCustom() 'startValue' parameter before 'ShakeSettings' parameter to be consistent with Tween.Custom() methods. ### Fixed - Normalize Quaternion passed to animation methods. ## [1.0.3] - 2023-08-15 ### Added - Sequence nesting: sequences can be grouped/chained to other sequences. - Add startValue/endValue overload to all animation methods. - Add Tween.ShakeCamera(). - Measure memory allocations in the Demo scene. ## [1.0.2] - 2023-05-29 ### Added - All tweens can now be viewed in PrimeTweenManager's inspector. ### Changed - Tweens are now frame perfect. That is, on a stable framerate, tweens take a deterministic number of frames. ## [1.0.1] - 2023-04-28 ### Added - Add a version of Tween.Custom() that doesn't require passing a tween's target. Please note that this version will most probably generate garbage because of closure allocation. - Add Tween.EulerAngles/LocalEulerAngles methods to animate rotation beyond 180 degrees. - Add Demo scene. ### Changed - Remove Tween.RotationXYZ/LocalRotationXYZ methods because manipulating Euler angles may lead to unexpected results. More info: https://docs.unity3d.com/ScriptReference/Transform-eulerAngles.html - Tween.Rotation/LocalRotation methods now convert the Vector3 parameter to Quaternion instead of treating it as Euler angles. ### Fixed - Property drawers don't work correctly with copy-pasting and prefabs. - Fixed: samples asmdef has dependency duplication that leads to compilation error. - Fixed: custom curve should not be clamped at the start or the end of the animation. ## [1.0.0] - 2023-04-20 ### Added - Animate anything (UI, Transform, Material, etc.) with zero allocations. - Group animations in Sequences with zero allocations. - Shake anything. - Everything is tweakable from the Inspector. - Async/await support. - Coroutines support.