PrimeTween · High-Performance Animations and Sequences

PrimeTween is a high-performance, allocation-free tween library for Unity.


Animate anything with just one line of code, tweak all animation properties directly from the Inspector, and create complex animation sequences. No runtime memory allocations, ever.


Documentation | Forum | FAQ | Support


🔥 Highlights 🔥


  • Performance analysis.
  • Zero-allocation animations, shakes, delays, and sequences.
  • Simple and consistent API. Animate anything with one line of code.
  • Installs as a Unity Package Manager (UPM) package.
  • No dependencies on other packages or libraries.
  • Full C# source code is available. 
  • Covered by 250+ automated tests and ready for production.

💡 Features 💡


  • Animations: animate Transform, Material, UnityEngine.UI (uGUI), UI Toolkit, AudioSource, Light, etc.
  • Custom animations: animate any field or property of type float, Vector, Color, Quaternion, or Rect.
  • Delays: schedule delays, set timers, and use PrimeTween as a non-allocating alternative to 'WaitForSeconds()' and 'await Task.Delay()'.
  • Easing functions: choose a standard easing function, provide a custom AnimationCurve for animations, or use Parametric Easing to fine-tune the standard easings.
  • Shakes: shake the camera, Transform, or any arbitrary property.
  • Callbacks: execute custom code when animations complete.
  • Sequences: combine animations, delays, and callbacks into complex sequences.
  • Inspector integration: all animation properties are tweakable from the Inspector. Tweak start and end values, duration, cycles, etc. Choose a standard easing function or provide a custom animation curve. All without re-compiling the code.
  • Coroutines: wait for animations and sequences in coroutines.
  • Async/await: await animations and sequences in async methods.
  • Cycles: repeat, play animations back and forth like a yoyo, or cycle them indefinitely.

Documentation | Forum | FAQ | Support

Release Notes

## [1.3.1] - 2025-04-27

### Added

- Add Edit mode support, so animations can be played in Editor without entering the Play mode. https://github.com/KyryloKuzyk/PrimeTween/discussions/62

- PrimeTween can now be installed via Unity Package Manager.

- Demo project: add 'Play Animation' button to Inspector to preview animations in Edit mode without entering Play mode.

- Add the experimental `ResetAfterComplete()` method to reset animations to the initial value before completion. https://github.com/KyryloKuzyk/PrimeTween/discussions/153

- Add the experimental `PrimeTweenConfig.ManualInitialize()` to initialize PrimeTween before `RuntimeInitializeLoadType.BeforeSceneLoad`. https://github.com/KyryloKuzyk/PrimeTween/issues/150

- Add `Tween.VisualElementOpacity()` method to animate the `VisualElement.style.opacity` property. Also, extend `Tween.Color/Alpha` methods to also work with VisualElement.

### Changed

- Passing `null` to `OnComplete()` is now allowed and no longer results in an error. https://github.com/KyryloKuzyk/PrimeTween/discussions/164

### Fixed

- Fixed: PrimeTween doesn't work after scripts are recompiled while playing in Editor when the 'Recompile And Continue Playing' setting is enabled.


## [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.

Basic Information
Latest Version
1.3.1 (27 Apr 2025)
Publisher
Kyrylo Kuzyk
Category
Editor Extensions/Animation
Size
11.4 MB
Price
free
Asset Rating
(86)
Extended Information
Unity Versions
2019.4.0, 6000.1.0
Render Pipelines
BIRP URP HDRP
State
published