unity-dotween-design

Provides source-anchored design rules for writing and reviewing DOTween animation code in Unity.

Updated Jan 29, 2026
One-click install
npx skills add https://github.com/Dylan8865/FinalYearProject --skill unity-dotween-design-dylan8865
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: unity-dotween-design
Source: https://github.com/Dylan8865/FinalYearProject/tree/main/GameDev/Tester/.agents/skills/unity-skills/skills/dotween-design
Command: npx skills add https://github.com/Dylan8865/FinalYearProject --skill unity-dotween-design-dylan8865

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Writing DOTween animation code in Unity often leads to subtle bugs: tweens outliving destroyed targets, Append-versus-Join timing mistakes, OnComplete never firing on infinite loops, and missing module compile errors. This Skill grounds every rule in the actual DOTween 1.3.015 source code with file and line citations, so AI-generated or reviewed tween code is auditable rather than based on stale memory. ## Core Features & Use Cases - Source-anchored rule set: Ten critical rules covering DOTween.Init bootstrap, the [DOTween] driver GameObject, autoKill semantics, Safe Mode, SetLink lifetime binding, and Sequence composition, each citing exact source lines. - Eight sub-doc references: Deep dives into basics, tween lifecycle, sequences, shortcut extensions by target type, easing, lifetime management, UniTask/Coroutine/Addressables integration, and 30 concrete production pitfalls. - Use Case: When a developer asks to "make a UI panel fade in and bounce", the Skill routes to the correct shortcuts (CanvasGroup.DOFade vs Image.DOFade), the right ease overload, and the SetLink lifetime binding so the tween dies cleanly when the panel closes. ## Quick Start Ask the AI to write or review a DOTween animation, such as creating a sequence that moves, rotates, and scales a transform with proper lifetime binding and easing.

Frequently Asked Questions about unity-dotween-design

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I run DOTween animations in parallel instead of sequentially?▼

Use Sequence.Join instead of a second Sequence.Append. Append places the tween after the previous one ends, while Join starts it at the same time as the last appended tween. For absolute timing, use Insert with an explicit time position.

How do I await a DOTween tween with UniTask?▼

Call tween.ToUniTask(TweenCancelBehaviour, CancellationToken) from the UniTask package's DOTween bridge. It is zero-allocation and supports cancellation, unlike the legacy AsyncWaitForCompletion which returns a heap-allocated Task and polls every frame.

Why does my DOTween tween throw errors after its target is destroyed?▼

The tween outlives its target GameObject. Safe Mode catches the exception and kills the tween with a warning, but the correct fix is calling SetLink(gameObject, LinkBehaviour.KillOnDestroy) so the tween lifecycle is explicitly bound to the target.

Why does OnComplete never fire on my looping DOTween animation?▼

OnComplete only fires after all loops finish, so with SetLoops(-1) for infinite looping it never fires. Use OnStepComplete for per-iteration callbacks and OnKill for final cleanup when the tween is explicitly killed.

Does DOTween support TextMeshPro text animations?▼

The TMP module is not bundled with DOTween Free source. You need DOTween Pro or a community TMP module generated via the DOTween Utility Panel to get extensions like DOText, DOFade, and DOColor on TMP_Text components.

What is the difference between Image.DOFade and CanvasGroup.DOFade?▼

Image.DOFade changes only that Image's color alpha, while CanvasGroup.DOFade changes the CanvasGroup alpha which affects all child UI elements. Choose based on whether you want to fade a single graphic or an entire UI panel hierarchy.