[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KGNW3XM3DVJEV5RV5VA2DP":3,"skill-same:01M6KGNW3XM3DVJEV5RV5VA2DP":123},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":28,"publishedAt":49,"linkOnly":50,"markdownContent":51,"markdownBody":52,"frontMatter":53,"refName":67,"commitSha":68,"skillDirectory":69,"forksCount":70,"repositoryHtmlUrl":71,"repositoryHomepageUrl":6,"ownerHtmlUrl":72,"ownerBlogUrl":6,"ownerDescription":73,"updatedAt":74,"install":75,"resources":88},"01M6KGNW3XM3DVJEV5RV5VA2DP","unity-dotween-design",null,"Source-anchored design rules for DOTween 1.3.015 (Unity 2018+). Load before writing any DOTween.Init \u002F DOMove \u002F Sequence.Append \u002F SetLoops \u002F SetLink \u002F AsyncWaitForCompletion \u002F ToUniTask code to avoid missing-target NRE, tween leaks, Safe Mode false positives, autoKill confusion, module compile errors. Triggers: DOTween, DOMove, DORotate, DOScale, DOColor, DOFade, DOShakePosition, DOShakeRotation, DOPath, DOPunchScale, DOJump, DOLocalMove, DOAnchorPos, DOSizeDelta, Sequence, Tweener, TweenerCore, SetEase, SetDelay, SetLoops, SetAutoKill, SetLink, SetUpdate, SetId, SetTarget, SetRelative, SetSnapping, SetRecyclable, OnComplete, OnKill, OnStart, OnUpdate, OnStepComplete, AsyncWaitForCompletion, AsyncWaitForKill, AsyncWaitForRewind, ToUniTask, DOVirtual, PathType, PathMode, LoopType, UpdateType, DOTweenComponent, DOTweenSettings, 补间动画, 序列动画, 缓动曲线, 生命周期绑定, 动画回调, DOTween init, tween lifecycle, safe mode, tween capacity, kill target.","dyCuong03\u002Funity-agent-team","dyCuong03","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F137050365?v=4","01M6KFXC85HQHXZJC2VC1KY6EZ","CuongND","01M6KFXCCHP6CD5MTA8NECJC36",8,"MIT","https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Funity-skills\u002Fskills\u002Fdotween-design\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"unity dotween design","unity","design","triggers","for","mode","errors","unity editor","missing","as","module","runtime","do","only","use","Animation","lifecycle","compile","init","writing","2026-11-10 10:12:30",false,"---\nname: unity-dotween-design\ndescription: \"Source-anchored design rules for DOTween 1.3.015 (Unity 2018+). Load before writing any DOTween.Init \u002F DOMove \u002F Sequence.Append \u002F SetLoops \u002F SetLink \u002F AsyncWaitForCompletion \u002F ToUniTask code to avoid missing-target NRE, tween leaks, Safe Mode false positives, autoKill confusion, module compile errors. Triggers: DOTween, DOMove, DORotate, DOScale, DOColor, DOFade, DOShakePosition, DOShakeRotation, DOPath, DOPunchScale, DOJump, DOLocalMove, DOAnchorPos, DOSizeDelta, Sequence, Tweener, TweenerCore, SetEase, SetDelay, SetLoops, SetAutoKill, SetLink, SetUpdate, SetId, SetTarget, SetRelative, SetSnapping, SetRecyclable, OnComplete, OnKill, OnStart, OnUpdate, OnStepComplete, AsyncWaitForCompletion, AsyncWaitForKill, AsyncWaitForRewind, ToUniTask, DOVirtual, PathType, PathMode, LoopType, UpdateType, DOTweenComponent, DOTweenSettings, 补间动画, 序列动画, 缓动曲线, 生命周期绑定, 动画回调, DOTween init, tween lifecycle, safe mode, tween capacity, kill target.\"\nplatforms: [unity-editor, claude-code]\ntask-categories: [animation, tweening, design-advisory]\nuse-when: |-\n  Load when designing or reviewing source-anchored design rules for dotween 1. Load for design advisory guidance — does not require Unity Editor running.\ndo-not-use-when: |-\n  Do not load as a runtime editor-automation skill — this module provides design advisory guidance only. Do not use for direct Unity Editor mutations.\nmetadata:\n  source: https:\u002F\u002Fgithub.com\u002FBesty0728\u002FUnity-Skills\n  version: 1.9.2\n  tier: 2\n\n---\n\n# DOTween - Design Rules\n\nAdvisory module. Every rule is distilled from Demigiant DOTween source at:\n- **1.3.015** — bundled in `_DOTween.Assembly\u002FDOTween\u002F` and `bin\u002FModules\u002F` module files (Unity 2018+)\n\nEach rule cites a concrete file\u002Fline so the reasoning is auditable and the AI does not improvise against stale memory.\n\n> **Mode**: Documentation only — no REST skills to gate; load freely under any operating mode (Approval \u002F Auto \u002F Bypass).\n\n## When to Load This Module\n\nLoad before writing or reviewing any of:\n\n- `DOTween.Init(...)` bootstrap, DOTweenSettings configuration, SetTweensCapacity adjustments\n- Any `.DOMove \u002F .DORotate \u002F .DOScale \u002F .DOColor \u002F .DOFade \u002F .DOShake* \u002F .DOPath \u002F .DOPunch*` shortcut call\n- `DOTween.Sequence()` + `.Append \u002F .Join \u002F .Insert \u002F .Prepend \u002F .AppendInterval \u002F .PrependInterval \u002F .AppendCallback`\n- `.SetEase \u002F .SetDelay \u002F .SetLoops \u002F .SetAutoKill \u002F .SetLink \u002F .SetId \u002F .SetTarget \u002F .SetUpdate \u002F .SetRelative \u002F .SetRecyclable \u002F .SetSpeedBased`\n- `.OnStart \u002F .OnUpdate \u002F .OnStepComplete \u002F .OnComplete \u002F .OnKill \u002F .OnPlay \u002F .OnPause \u002F .OnRewind`\n- `.AsyncWaitForCompletion \u002F .AsyncWaitForKill \u002F .AsyncWaitForRewind \u002F .AsyncWaitForElapsedLoops \u002F .AsyncWaitForPosition`\n- `tween.ToUniTask(TweenCancelBehaviour, CancellationToken)` (UniTask bridge)\n- `DOTween.Kill(target, complete)` \u002F `DOTween.KillAll()` batch operations\n- Safe Mode debugging — `useSafeMode`, `safeModeLogBehaviour`, `nestedTweenFailureBehaviour`\n- DOTween Module generation (Audio \u002F Physics \u002F Physics2D \u002F Sprite \u002F UI \u002F UnityUI \u002F TextMeshPro)\n\n## Critical Rule Summary\n\n| # | Rule | Source anchor |\n|---|------|---------------|\n| 1 | `DOTween.Init(recycleAllByDefault, useSafeMode, logBehaviour)` returns `IDOTweenInit` for fluent `.SetCapacity(...)`. If not called explicitly, Auto-init runs on first tween creation (`AutoInit` at `DOTween.cs:236`). `DOTween.Version = \"1.3.015\"` is exposed as a const. | `DOTween.cs:38,227,236,243` |\n| 2 | Every tween is driven by a single `[DOTween]` GameObject MonoBehaviour (`DOTweenComponent`) marked `DontDestroyOnLoad`. It is created on first init and survives scene loads. Don't destroy it — `DOTween.Clear(destroy: true)` is the only supported teardown. | `DOTweenComponent.cs:268-270`, `DOTween.cs:311` |\n| 3 | **Default `autoKill = true`**: tween is killed on completion. After kill, calls like `.Restart()` \u002F `.Kill()` \u002F `.Complete()` are no-ops (Safe Mode) or NullReferenceException (Safe Mode off). Use `.SetAutoKill(false)` to keep tween alive for replay. | `DOTween.cs useSafeMode:49`, `TweenSettingsExtensions.cs:39,49` |\n| 4 | **Safe Mode is ON by default** (`useSafeMode = true`). Target destroyed while tween plays → Safe Mode catches the exception and logs per `safeModeLogBehaviour` (default: Warning). Disable Safe Mode to locate missing-link bugs during development. | `DOTween.cs:49,51` |\n| 5 | `SetLink(gameObject, LinkBehaviour)` binds tween lifecycle to a GameObject. Default `LinkBehaviour.KillOnDestroy`. Without `SetLink`, tween continues running after target is destroyed and relies on Safe Mode for protection. | `TweenSettingsExtensions.cs:91,103`, `LinkBehaviour.cs` |\n| 6 | `SetTarget(object target)` is required for `DOTween.Kill(target)` \u002F `DOTween.KillAll(target)` grouping. Shortcut extensions (`.DOMove`, `.DOFade`, etc.) set target automatically; manual `DOTween.To(...)` does NOT. | `TweenSettingsExtensions.cs:116`, `DOTween.cs:884,892` |\n| 7 | `Sequence.Append(t)` runs after previous. `Sequence.Join(t)` runs in parallel with previous. `Sequence.Insert(float atPosition, t)` inserts at absolute time. `Sequence.Prepend(t)` pushes to front, shifting existing. | `TweenSettingsExtensions.cs:499,508,517,528` |\n| 8 | `AsyncWaitForCompletion \u002F AsyncWaitForKill \u002F AsyncWaitForRewind` live in `DOTweenModuleUnityVersion.cs` (MODULE file, gated by `UNITY_2018_1_OR_NEWER && (NET_4_6 || NET_STANDARD_2_0)`). If Modules are not generated (Tools → DOTween Utility Panel → Create ASMDEF), these APIs don't exist. | `bin\u002FModules\u002FDOTweenModuleUnityVersion.cs:216,244,230` |\n| 9 | UniTask bridge `tween.ToUniTask(TweenCancelBehaviour, CancellationToken)` lives in UniTask's `External\u002FDOTween\u002F` extensions and is the **recommended** await path over `AsyncWaitForCompletion`. `TweenCancelBehaviour` has 9 values (Kill \u002F Complete \u002F CancelAwait \u002F KillAndCancelAwait \u002F ...). | UniTask `DOTweenAsyncExtensions.cs:14-27,54` |\n| 10 | `Ease` enum has **38 entries** (36 user-facing + 2 reserved `INTERNAL_*`): `Unset \u002F Linear` + In\u002FOut\u002FInOut variants of Sine\u002FQuad\u002FCubic\u002FQuart\u002FQuint\u002FExpo\u002FCirc\u002FElastic\u002FBack\u002FBounce (10 × 3 = 30 math eases) + `Flash \u002F InFlash \u002F OutFlash \u002F InOutFlash`. `INTERNAL_Zero` and `INTERNAL_Custom` are auto-assigned by DOTween for zero-duration and AnimationCurve-based tweens. | `Ease.cs:9-53` |\n\n## Sub-doc Routing\n\n| Sub-doc | When to read |\n|---------|--------------|\n| [BASICS.md](.\u002FBASICS.md) | `DOTween.Init`, driver GameObject, DOTweenSettings asset, Modules architecture, Safe Mode, tween capacity |\n| [TWEEN.md](.\u002FTWEEN.md) | Tween base class, Tweener vs Sequence, autoKill, Play\u002FPause\u002FRewind\u002FRestart\u002FKill\u002FComplete\u002FGoto lifecycle |\n| [SEQUENCE.md](.\u002FSEQUENCE.md) | `Sequence.Append \u002F Join \u002F Insert \u002F Prepend \u002F AppendInterval \u002F PrependInterval \u002F AppendCallback \u002F InsertCallback`, nesting, loop composition |\n| [SHORTCUTS.md](.\u002FSHORTCUTS.md) | `.DOMove \u002F DOLocalMove \u002F DOAnchorPos \u002F DORotate \u002F DOScale \u002F DOColor \u002F DOFade \u002F DOPath \u002F DOJump \u002F DOPunch \u002F DOShake*` cheat sheet by target type |\n| [EASE.md](.\u002FEASE.md) | Full `Ease` enum, `SetEase` overloads (Ease \u002F amplitude+period \u002F AnimationCurve \u002F EaseFunction), Flash family, Elastic\u002FBack overshoot |\n| [LIFETIME.md](.\u002FLIFETIME.md) | `SetAutoKill \u002F SetLink \u002F SetRecyclable \u002F SetId \u002F SetTarget \u002F DOTween.Kill \u002F DOTween.KillAll`, Safe Mode, tween pool capacity |\n| [INTEGRATION.md](.\u002FINTEGRATION.md) | DOTween + UniTask (`ToUniTask`), DOTween + Coroutine (`WaitForCompletion`), DOTween + Addressables lifetime, DOTween + Netcode deterministic replay |\n| [PITFALLS.md](.\u002FPITFALLS.md) | 30 concrete hallucination \u002F runtime pitfalls (missing target, stale tween handle, OnComplete not firing on infinite loop, Safe Mode hiding bugs, etc.) |\n\n## Routing to Other Modules\n\n- Async integration (`ToUniTask`, `AsyncWaitForCompletion`) → load [unitask-design](..\u002Funitask-design\u002FSKILL.md) and [async](..\u002Fasync\u002FSKILL.md)\n- UI animation (uGUI \u002F UIToolkit) choice between DOTween and native animators → load [inspector](..\u002Finspector\u002FSKILL.md)\n- Architecture \u002F performance review of tween-heavy scenes → load [performance](..\u002Fperformance\u002FSKILL.md)\n- Asmdef layout for DOTween consumers (`DOTween.asmdef`, DOTween Modules asmdef) → load [asmdef](..\u002Fasmdef\u002FSKILL.md)\n- Addressables-loaded prefab tween lifetime (bundle unload vs tween running) → load [addressables-design](..\u002Faddressables-design\u002FSKILL.md)\n\n## Version Scope\n\nTargets **DOTween 1.3.015** (the Pro\u002FFree source bundled in `_DOTween.Assembly\u002F`). Version is exposed as the const `DOTween.Version = \"1.3.015\"` at `DOTween.cs:38`.\n\nEarlier 1.2.x versions are source-compatible for most APIs. Key differences:\n- Modules system (UI \u002F TMP \u002F Physics \u002F etc.) requires post-1.2.0 source and the Utility Panel scanner.\n- `SetLink` was added in 1.2.x series; `LinkBehaviour.KillOnDestroy` vs `KillOnDisable` variants in later 1.2\u002F1.3.\n- `TweenCancelBehaviour` (UniTask bridge) shipped separately via the UniTask package.\n\nWhen in doubt, read the cited source — not your memory.\n","# DOTween - Design Rules\n\nAdvisory module. Every rule is distilled from Demigiant DOTween source at:\n- **1.3.015** — bundled in `_DOTween.Assembly\u002FDOTween\u002F` and `bin\u002FModules\u002F` module files (Unity 2018+)\n\nEach rule cites a concrete file\u002Fline so the reasoning is auditable and the AI does not improvise against stale memory.\n\n> **Mode**: Documentation only — no REST skills to gate; load freely under any operating mode (Approval \u002F Auto \u002F Bypass).\n\n## When to Load This Module\n\nLoad before writing or reviewing any of:\n\n- `DOTween.Init(...)` bootstrap, DOTweenSettings configuration, SetTweensCapacity adjustments\n- Any `.DOMove \u002F .DORotate \u002F .DOScale \u002F .DOColor \u002F .DOFade \u002F .DOShake* \u002F .DOPath \u002F .DOPunch*` shortcut call\n- `DOTween.Sequence()` + `.Append \u002F .Join \u002F .Insert \u002F .Prepend \u002F .AppendInterval \u002F .PrependInterval \u002F .AppendCallback`\n- `.SetEase \u002F .SetDelay \u002F .SetLoops \u002F .SetAutoKill \u002F .SetLink \u002F .SetId \u002F .SetTarget \u002F .SetUpdate \u002F .SetRelative \u002F .SetRecyclable \u002F .SetSpeedBased`\n- `.OnStart \u002F .OnUpdate \u002F .OnStepComplete \u002F .OnComplete \u002F .OnKill \u002F .OnPlay \u002F .OnPause \u002F .OnRewind`\n- `.AsyncWaitForCompletion \u002F .AsyncWaitForKill \u002F .AsyncWaitForRewind \u002F .AsyncWaitForElapsedLoops \u002F .AsyncWaitForPosition`\n- `tween.ToUniTask(TweenCancelBehaviour, CancellationToken)` (UniTask bridge)\n- `DOTween.Kill(target, complete)` \u002F `DOTween.KillAll()` batch operations\n- Safe Mode debugging — `useSafeMode`, `safeModeLogBehaviour`, `nestedTweenFailureBehaviour`\n- DOTween Module generation (Audio \u002F Physics \u002F Physics2D \u002F Sprite \u002F UI \u002F UnityUI \u002F TextMeshPro)\n\n## Critical Rule Summary\n\n| # | Rule | Source anchor |\n|---|------|---------------|\n| 1 | `DOTween.Init(recycleAllByDefault, useSafeMode, logBehaviour)` returns `IDOTweenInit` for fluent `.SetCapacity(...)`. If not called explicitly, Auto-init runs on first tween creation (`AutoInit` at `DOTween.cs:236`). `DOTween.Version = \"1.3.015\"` is exposed as a const. | `DOTween.cs:38,227,236,243` |\n| 2 | Every tween is driven by a single `[DOTween]` GameObject MonoBehaviour (`DOTweenComponent`) marked `DontDestroyOnLoad`. It is created on first init and survives scene loads. Don't destroy it — `DOTween.Clear(destroy: true)` is the only supported teardown. | `DOTweenComponent.cs:268-270`, `DOTween.cs:311` |\n| 3 | **Default `autoKill = true`**: tween is killed on completion. After kill, calls like `.Restart()` \u002F `.Kill()` \u002F `.Complete()` are no-ops (Safe Mode) or NullReferenceException (Safe Mode off). Use `.SetAutoKill(false)` to keep tween alive for replay. | `DOTween.cs useSafeMode:49`, `TweenSettingsExtensions.cs:39,49` |\n| 4 | **Safe Mode is ON by default** (`useSafeMode = true`). Target destroyed while tween plays → Safe Mode catches the exception and logs per `safeModeLogBehaviour` (default: Warning). Disable Safe Mode to locate missing-link bugs during development. | `DOTween.cs:49,51` |\n| 5 | `SetLink(gameObject, LinkBehaviour)` binds tween lifecycle to a GameObject. Default `LinkBehaviour.KillOnDestroy`. Without `SetLink`, tween continues running after target is destroyed and relies on Safe Mode for protection. | `TweenSettingsExtensions.cs:91,103`, `LinkBehaviour.cs` |\n| 6 | `SetTarget(object target)` is required for `DOTween.Kill(target)` \u002F `DOTween.KillAll(target)` grouping. Shortcut extensions (`.DOMove`, `.DOFade`, etc.) set target automatically; manual `DOTween.To(...)` does NOT. | `TweenSettingsExtensions.cs:116`, `DOTween.cs:884,892` |\n| 7 | `Sequence.Append(t)` runs after previous. `Sequence.Join(t)` runs in parallel with previous. `Sequence.Insert(float atPosition, t)` inserts at absolute time. `Sequence.Prepend(t)` pushes to front, shifting existing. | `TweenSettingsExtensions.cs:499,508,517,528` |\n| 8 | `AsyncWaitForCompletion \u002F AsyncWaitForKill \u002F AsyncWaitForRewind` live in `DOTweenModuleUnityVersion.cs` (MODULE file, gated by `UNITY_2018_1_OR_NEWER && (NET_4_6 || NET_STANDARD_2_0)`). If Modules are not generated (Tools → DOTween Utility Panel → Create ASMDEF), these APIs don't exist. | `bin\u002FModules\u002FDOTweenModuleUnityVersion.cs:216,244,230` |\n| 9 | UniTask bridge `tween.ToUniTask(TweenCancelBehaviour, CancellationToken)` lives in UniTask's `External\u002FDOTween\u002F` extensions and is the **recommended** await path over `AsyncWaitForCompletion`. `TweenCancelBehaviour` has 9 values (Kill \u002F Complete \u002F CancelAwait \u002F KillAndCancelAwait \u002F ...). | UniTask `DOTweenAsyncExtensions.cs:14-27,54` |\n| 10 | `Ease` enum has **38 entries** (36 user-facing + 2 reserved `INTERNAL_*`): `Unset \u002F Linear` + In\u002FOut\u002FInOut variants of Sine\u002FQuad\u002FCubic\u002FQuart\u002FQuint\u002FExpo\u002FCirc\u002FElastic\u002FBack\u002FBounce (10 × 3 = 30 math eases) + `Flash \u002F InFlash \u002F OutFlash \u002F InOutFlash`. `INTERNAL_Zero` and `INTERNAL_Custom` are auto-assigned by DOTween for zero-duration and AnimationCurve-based tweens. | `Ease.cs:9-53` |\n\n## Sub-doc Routing\n\n| Sub-doc | When to read |\n|---------|--------------|\n| [BASICS.md](.\u002FBASICS.md) | `DOTween.Init`, driver GameObject, DOTweenSettings asset, Modules architecture, Safe Mode, tween capacity |\n| [TWEEN.md](.\u002FTWEEN.md) | Tween base class, Tweener vs Sequence, autoKill, Play\u002FPause\u002FRewind\u002FRestart\u002FKill\u002FComplete\u002FGoto lifecycle |\n| [SEQUENCE.md](.\u002FSEQUENCE.md) | `Sequence.Append \u002F Join \u002F Insert \u002F Prepend \u002F AppendInterval \u002F PrependInterval \u002F AppendCallback \u002F InsertCallback`, nesting, loop composition |\n| [SHORTCUTS.md](.\u002FSHORTCUTS.md) | `.DOMove \u002F DOLocalMove \u002F DOAnchorPos \u002F DORotate \u002F DOScale \u002F DOColor \u002F DOFade \u002F DOPath \u002F DOJump \u002F DOPunch \u002F DOShake*` cheat sheet by target type |\n| [EASE.md](.\u002FEASE.md) | Full `Ease` enum, `SetEase` overloads (Ease \u002F amplitude+period \u002F AnimationCurve \u002F EaseFunction), Flash family, Elastic\u002FBack overshoot |\n| [LIFETIME.md](.\u002FLIFETIME.md) | `SetAutoKill \u002F SetLink \u002F SetRecyclable \u002F SetId \u002F SetTarget \u002F DOTween.Kill \u002F DOTween.KillAll`, Safe Mode, tween pool capacity |\n| [INTEGRATION.md](.\u002FINTEGRATION.md) | DOTween + UniTask (`ToUniTask`), DOTween + Coroutine (`WaitForCompletion`), DOTween + Addressables lifetime, DOTween + Netcode deterministic replay |\n| [PITFALLS.md](.\u002FPITFALLS.md) | 30 concrete hallucination \u002F runtime pitfalls (missing target, stale tween handle, OnComplete not firing on infinite loop, Safe Mode hiding bugs, etc.) |\n\n## Routing to Other Modules\n\n- Async integration (`ToUniTask`, `AsyncWaitForCompletion`) → load [unitask-design](..\u002Funitask-design\u002FSKILL.md) and [async](..\u002Fasync\u002FSKILL.md)\n- UI animation (uGUI \u002F UIToolkit) choice between DOTween and native animators → load [inspector](..\u002Finspector\u002FSKILL.md)\n- Architecture \u002F performance review of tween-heavy scenes → load [performance](..\u002Fperformance\u002FSKILL.md)\n- Asmdef layout for DOTween consumers (`DOTween.asmdef`, DOTween Modules asmdef) → load [asmdef](..\u002Fasmdef\u002FSKILL.md)\n- Addressables-loaded prefab tween lifetime (bundle unload vs tween running) → load [addressables-design](..\u002Faddressables-design\u002FSKILL.md)\n\n## Version Scope\n\nTargets **DOTween 1.3.015** (the Pro\u002FFree source bundled in `_DOTween.Assembly\u002F`). Version is exposed as the const `DOTween.Version = \"1.3.015\"` at `DOTween.cs:38`.\n\nEarlier 1.2.x versions are source-compatible for most APIs. Key differences:\n- Modules system (UI \u002F TMP \u002F Physics \u002F etc.) requires post-1.2.0 source and the Utility Panel scanner.\n- `SetLink` was added in 1.2.x series; `LinkBehaviour.KillOnDestroy` vs `KillOnDisable` variants in later 1.2\u002F1.3.\n- `TweenCancelBehaviour` (UniTask bridge) shipped separately via the UniTask package.\n\nWhen in doubt, read the cited source — not your memory.\n",{"name":5,"metadata":54,"use-when":58,"platforms":59,"description":7,"do-not-use-when":62,"task-categories":63},{"tier":55,"source":56,"version":57},2,"https:\u002F\u002Fgithub.com\u002FBesty0728\u002FUnity-Skills","1.9.2","Load when designing or reviewing source-anchored design rules for dotween 1. Load for design advisory guidance — does not require Unity Editor running.",[60,61],"unity-editor","claude-code","Do not load as a runtime editor-automation skill — this module provides design advisory guidance only. Do not use for direct Unity Editor mutations.",[64,65,66],"animation","tweening","design-advisory","main","fe4746b9f07e6c7c2b6d3932002183af9b9f6fa2",".claude\u002Fskills\u002Funity-skills\u002Fskills\u002Fdotween-design",0,"https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team","https:\u002F\u002Fgithub.com\u002FdyCuong03","Game developer","2026-07-25 22:22:25",{"source":8,"skillName":5,"commands":76,"prompt":86,"zipAvailable":87},[77,80,83],{"tool":78,"command":79},"npx","npx skills add dyCuong03\u002Funity-agent-team --skill unity-dotween-design",{"tool":81,"command":82},"bunx","bunx skills add dyCuong03\u002Funity-agent-team --skill unity-dotween-design",{"tool":84,"command":85},"pnpm","pnpm dlx skills add dyCuong03\u002Funity-agent-team --skill unity-dotween-design","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Funity-skills\u002Fskills\u002Fdotween-design\u002FSKILL.md",true,[89,95,99,103,107,111,115,119],{"path":90,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":93,"sourceHtmlUrl":94},"BASICS.md","REFERENCE","参考文档",8773,"https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Funity-skills\u002Fskills\u002Fdotween-design\u002FBASICS.md",{"path":96,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":97,"sourceHtmlUrl":98},"EASE.md",7364,"https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Funity-skills\u002Fskills\u002Fdotween-design\u002FEASE.md",{"path":100,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":101,"sourceHtmlUrl":102},"INTEGRATION.md",8113,"https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Funity-skills\u002Fskills\u002Fdotween-design\u002FINTEGRATION.md",{"path":104,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":105,"sourceHtmlUrl":106},"LIFETIME.md",8892,"https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Funity-skills\u002Fskills\u002Fdotween-design\u002FLIFETIME.md",{"path":108,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":109,"sourceHtmlUrl":110},"PITFALLS.md",12313,"https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Funity-skills\u002Fskills\u002Fdotween-design\u002FPITFALLS.md",{"path":112,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":113,"sourceHtmlUrl":114},"SEQUENCE.md",7041,"https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Funity-skills\u002Fskills\u002Fdotween-design\u002FSEQUENCE.md",{"path":116,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":117,"sourceHtmlUrl":118},"SHORTCUTS.md",17369,"https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Funity-skills\u002Fskills\u002Fdotween-design\u002FSHORTCUTS.md",{"path":120,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":121,"sourceHtmlUrl":122},"TWEEN.md",8412,"https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Funity-skills\u002Fskills\u002Fdotween-design\u002FTWEEN.md",[124,148,171,193,211,232],{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":130,"publishedAt":49},"01M6KH55FFS00ET877QSMRYGX4","dots-update-groups","How to choose the right ECS system group and ordering so per-frame and per-fixed-step work is deterministic and never races its own readers. Covers InitializationSystemGroup \u002F SimulationSystemGroup \u002F PresentationSystemGroup \u002F FixedStepSimulationSystemGroup \u002F VariableRateSimulationSystemGroup, UpdateBefore \u002F UpdateAfter peer ordering, OrderFirst \u002F OrderLast group-boundary placement, RateManager, and the cross-group ordering trap. Use when adding an ISystem, fixing \"value visible one frame late\" bugs, or coupling simulation to a fixed timestep.","https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team\u002Fblob\u002Fmain\u002Fworkspace\u002Fdots-program\u002Fscratch\u002Fwave-2-orchestrator-drafts\u002Fdots-update-groups\u002FSKILL.md",[],[131,132,133,134,135,136,137,138,43,139,140,141,142,143,144,145,146,147],"update","dots update groups","boundary","simulation","how","system","choose","work","never","peer","deterministic","how to","coupling","ecs","bugs","frame","value",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":154,"publishedAt":49},"01M6KH50PWYEFQDCGYBZ0326F1","dots-transform-patterns","The Entities 1.x transform model — LocalTransform (writable input) vs LocalToWorld (system-owned matrix), Parent\u002FChild hierarchy, reparenting cost, uniform vs non-uniform scale (PostTransformMatrix), and when to opt out with custom transform systems. Use when designing parent\u002Fchild hierarchies, runtime reparenting (mount\u002Fdismount\u002Fsocket), or choosing transform components at the Baker boundary.","https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team\u002Fblob\u002Fmain\u002Fworkspace\u002Fdots-program\u002Fscratch\u002Fwave-2-orchestrator-drafts\u002Fdots-transform-patterns\u002FSKILL.md",[],[155,156,157,158,133,136,159,160,43,161,40,162,163,164,165,166,167,168,169,170],"patterns","transform","dots transform patterns","components","mount","model","cost","systems","input","with","matrix","socket","at","child","custom","hierarchy",{"skillNo":172,"name":173,"nameZh":6,"description":174,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":175,"categories":176,"keywords":180,"publishedAt":49},"01M6KH4VW4MA14DQW4KQYPFT0S","dots-singleton-patterns","Model cross-system shared configuration and game state as a single-entity component with a strict single-writer contract. Covers RequireForUpdate gating, SystemAPI.GetSingleton \u002F GetSingletonRW \u002F HasSingleton \u002F TryGetSingleton, bake-time vs runtime-created vs ECB-system singletons, the \"exactly one entity\" runtime invariant, and the single-writer rule. Use when designing frame-stable global config, shared mutable state, or any component intended to exist on exactly one entity.","https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team\u002Fblob\u002Fmain\u002Fworkspace\u002Fdots-program\u002Fscratch\u002Fwave-2-orchestrator-drafts\u002Fdots-singleton-patterns\u002FSKILL.md",[177],{"categoryNo":178,"categoryName":179,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000037","律师与法务",[155,181,182,183,184,185,186,136,160,43,187,188,189,40,190,38,164,146,191,192],"singleton","dots singleton patterns","component","config","state","game","writer","time","shared","contract","ecb","gating",{"skillNo":194,"name":195,"nameZh":6,"description":196,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":197,"categories":198,"keywords":199,"publishedAt":49},"01M6KH4PR076AYNDZHD63HHWX6","dots-hybrid-bridge","The one-way bridge between DOTS-owned runtime state and Unity-owned presentation. Covers UnityObjectRef for managed asset refs in components, the DOTS-writes \u002F Unity-reads ownership rule, when to use managed IComponentData vs UnityObjectRef vs CompanionComponent, baker-bridge vs runtime-bridge, and SubScene boundary rules. Use when an entity must reference Unity assets (Mesh, Material, AudioClip, ScriptableObject), a MonoBehaviour view must read entity state, or input\u002FUI must trigger ECS work.","https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team\u002Fblob\u002Fmain\u002Fworkspace\u002Fdots-program\u002Fscratch\u002Fwave-2-orchestrator-drafts\u002Fdots-hybrid-bridge\u002FSKILL.md",[],[200,201,202,203,158,185,133,204,205,138,206,207,43,40,208,30,163,209,33,210],"bridge","hybrid","dots hybrid bridge","mesh","assets","Rules","read","view","trigger","material","managed",{"skillNo":212,"name":213,"nameZh":6,"description":214,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":215,"categories":216,"keywords":217,"publishedAt":49},"01M6KH4FGRQ9AP2ND5H5HX4D83","dots-event-driven-ecs","Model one-frame events and external requests in ECS without dual ownership, polling, or persistent state leaks. Covers request-tag pattern with ECB, enableable command components (no structural change), event buffers (IBufferElementData), explicit consumer ownership, one-frame latency rules, and the banned C# event \u002F UnityEvent \u002F static bus anti-patterns. Use when input\u002FUI\u002Fnetwork must trigger ECS work, when a one-frame signal fans out to N consumers (damage, hit, collision), or when state changes must be processed exactly once.","https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team\u002Fblob\u002Fmain\u002Fworkspace\u002Fdots-program\u002Fscratch\u002Fwave-2-orchestrator-drafts\u002Fdots-event-driven-ecs\u002FSKILL.md",[],[218,219,144,220,221,158,222,223,224,160,138,225,226,155,227,228,163,229,230,231],"event driven","driven","event","dots event driven ecs","change","ui","network","command","anti-patterns","pattern","structural","events","static","request",{"skillNo":233,"name":234,"nameZh":6,"description":235,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":236,"categories":237,"keywords":247,"publishedAt":49},"01M6KH4BWRGCEBJ8PKCKCSGT33","valid_skill","A complete, well-formed test fixture skill for SkillHub validation testing. Covers basic task routing and code review for Unity projects.","https:\u002F\u002Fgithub.com\u002FdyCuong03\u002Funity-agent-team\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fvalid_skill\u002FSKILL.md",[238,241,244],{"categoryNo":239,"categoryName":240,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":242,"categoryName":243,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":245,"categoryName":246,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[248,249,250,251,252,253,254,255,256,257,258,259,260,261,30,262,33],"valid skill","valid","code review","testing","review","test","routing","code","validation","projects","fixture skill","task","fixture","basic","complete"]