name: unity-dotween
description: Automate DOTween Free/Pro at editor time
> **Before calling any skill in this module:** if you are about to call a skill with parameters guessed from its name or description, STOP — read this file (or fetch its schema via `GET /skills/recommend?includeSchema=true`) first. If you already have the parameter definitions from recommend/schema, you may proceed straight to dryRun.
- Setting up DOTween
- Validating install/modules
- Configuring DOTweenAnimation components
- 接入 DOTween、校验安装/模块、配置 DOTweenAnimation 组件
DOTween Free/Pro support for project diagnostics, settings, module/API discovery, and runtime script generation. DOTween Pro-only `DOTweenAnimation` editor-time configuration remains available through `dotween_pro_*` skills.
**Operating Mode** (v1.9 three-tier):
- **Approval** (default): query/diagnostic skills (`dotween_get_status`, `dotween_settings_get`, `dotween_settings_find`, `dotween_settings_validate`, `dotween_list_modules`, `dotween_list_shortcuts`, `dotween_pro_get_animation`, `dotween_pro_list_animations`) run directly. Mutators (settings configure, the remaining `dotween_pro_*` writers) are FullAuto — on `MODE_RESTRICTED`, run the grant protocol. The script generators and `dotween_pro_remove_animation` are auto-forbidden instead (next bullet); grant does **not** unlock those.
- **Auto** / **Bypass**: SemiAuto and FullAuto run directly.
- Auto-forbidden in this module: `dotween_generate_tween_script`, `dotween_generate_sequence_script`, `dotween_generate_lifetime_script` (all carry `MayTriggerReload = true`, `RiskLevel = "high"` because writing a new `.cs` triggers script compilation + Domain Reload), plus `dotween_pro_remove_animation` (`SkillOperation.Delete` — the Delete bit alone triggers NeverInSemi even though its `RiskLevel` stays `"low"`). All four return `MODE_FORBIDDEN` under Approval **and** Auto, and are reachable only under Bypass mode or via a user-managed Allowlist entry; the grant flow returns `MODE_FORBIDDEN` too. Note the other Pro writers (`dotween_pro_add_animation`, `dotween_pro_set_*`, `dotween_pro_copy_animation`, …) carry no Delete bit and stay grantable.
- When DOTween Free/Pro is missing, the `DOTweenPresenceDetector` does not add the `DOTWEEN` / `DOTWEEN_PRO` defines, so most skills return a "not installed" diagnostic instead of executing. The `dotween_pro_*` family additionally requires Pro because `DG.Tweening.DOTweenAnimation` is Pro-only.
**Prerequisites**:
- DOTween Free or Pro must be installed. `DOTweenPresenceDetector` adds `DOTWEEN` / `DOTWEEN_PRO` defines automatically after install.
- Free skills work with DOTween Free and Pro: status, settings read/find/validate/configure, module/shortcut listing, runtime script generation.
- `dotween_pro_*` skills require DOTween **Pro** because `DG.Tweening.DOTweenAnimation` is Pro-only.
**Do not confuse Free with Pro**:
- Free skills do **not** create or emulate `DOTweenAnimation` components.
- Runtime tween generation creates `.cs` scripts only; it does not auto-attach scripts to scene objects because Unity may need a Domain Reload first.
- For source-level runtime API design rules, load [dotween-design](../dotween-design/SKILL.md).
- `dotween_get_status` — report DOTween/Pro install status, `DOTweenSettings.asset` path, and visible module count.
- `dotween_settings_find` — list project assets named `DOTweenSettings`.
- `dotween_settings_get` — read common `DOTweenSettings.asset` fields.
- `dotween_settings_validate` — report missing settings, duplicate settings, invalid capacities, and notable SafeMode warnings.
- `dotween_settings_configure` — edit `Resources/DOTweenSettings.asset`; parameters: `defaultEaseType?`, `defaultAutoKill?`, `defaultLoopType?`, `safeMode?`, `logBehaviour?`, `tweenersCapacity?`, `sequencesCapacity?`. Parameters whose field this DOTween version does not declare come back in an `unsupported` array instead of counting as applied — DOTween Pro 1.0.381 has no capacity fields on the asset at all (its capacities are a runtime call, `DOTween.SetTweensCapacity`). Capacities must be >= 1; a bad enum value is rejected with the accepted names.
- `dotween_list_modules` — list loaded `DG.Tweening.DOTweenModule*`, `ShortcutExtensions`, `TweenExtensions`, and `TweenSettingsExtensions` types. Optional: `includeMethods=false`, `methodLimit=20`.
- `dotween_list_shortcuts` — list public extension methods. Optional filters: `targetType`, `methodPrefix`, `limit=100`.
All generation skills require `className`, default `folder=Assets/Scripts/DOTween`, optional `namespaceName`, and never overwrite existing files.
- `dotween_generate_tween_script` — create one runtime tween MonoBehaviour.
- `dotween_generate_sequence_script` — create one runtime `Sequence` MonoBehaviour; optional `stepsJson` array of `{op:"Append|Join|AppendInterval", tweenKind, duration}`.
- `dotween_generate_lifetime_script` — create a lifecycle-safe wrapper with `SetLink(gameObject)` by default and `KillTween()` on disable/destroy.
Common parameters: `targetKind=Transform`, `tweenKind=DOMove`, `duration=1`, `ease=OutQuad`, `loops=1`, `autoPlay=true`, `useSetLink=true`.
Supported v1 `targetKind` / `tweenKind` pairs:
- `Transform`: `DOMove`, `DOLocalMove`, `DORotate`, `DOLocalRotate`, `DOScale`, `DOPunchPosition`, `DOShakePosition`
- `RectTransform`: `DOAnchorPos`, `DOSizeDelta`
- `CanvasGroup`: `DOFade`
- `Graphic` / `Image`: `DOColor`, `DOFade`
- `Generic`: `DOTween.To`
Example:
dotween_generate_tween_script className=HeroPanelIntro targetKind=RectTransform tweenKind=DOAnchorPos duration=0.35 ease=OutBack
Sequence example:
dotween_generate_sequence_script className=ButtonPop targetKind=Transform stepsJson='[
{"op":"Append","tweenKind":"DOScale","duration":0.12},
{"op":"AppendInterval","duration":0.05},
{"op"