一键导入
litmotion
LitMotion zero-alloc tween library for Unity — LMotion.Create, BindTo, sequences, punch/shake, TMP animation, DOTween Pro migration guide.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
LitMotion zero-alloc tween library for Unity — LMotion.Create, BindTo, sequences, punch/shake, TMP animation, DOTween Pro migration guide.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Asset Hunter Pro — unused asset detection, dependency graph, duplicate finder, project cleanup automation for Unity
Author game-design diagrams (quest trees, economy flows, narrative branches, level layouts) from copy-ready Mermaid templates. Authoring only — NOT an adapter.
DOTS RPG grid inventory, item passive effects, and set bonuses — polyomino placement, rotation, auto-fit, PassiveEffectSystem, ItemSetBonusSystem, ModifierSource.ItemPassive/ItemSet.
Practical tools and validation methods for game balance — DPS calculators, EHP formulas, spreadsheet layouts, stat audits, difficulty spike detection
GDD structure, templates, and living documentation patterns for game projects — wiki pages, design docs, section layout, sync triggers
Game feel and juice — screen shake, hit stop, particles, animation curves, input responsiveness, feedback timing. Makes actions feel satisfying.
| name | litmotion |
| description | LitMotion zero-alloc tween library for Unity — LMotion.Create, BindTo, sequences, punch/shake, TMP animation, DOTween Pro migration guide. |
| effort | high |
| keywords | ["litmotion","tween","animation","zero-allocation"] |
| version | 1.3.0 |
| origin | theonekit-unity |
| repository | The1Studio/theonekit-unity |
| module | animation |
| protected | false |
Reference for LitMotion — a zero-allocation, high-performance tween library for Unity. 2-20x faster than DOTween/PrimeTween. Uses DOTS internally (Burst + Jobs) but exposes a MonoBehaviour-friendly API.
Related skills:
dots-ecs-core(if using ECS) ·dots-rpg(if animating RPG entities)
LMotion.Create, LMotion.Punch.Create, LMotion.Shake.CreateMotionHandle, .Bind(), .BindToPosition(), .BindToScale().WithEase(), .WithDelay(), .WithLoops(), .WithOnComplete()LSequence for sequential/parallel motion chains.BindToTMPCharColor()IMotionAdapter implementationsDOMove, DOScale, DOFade, DOSequence| Task | Reference |
|---|---|
| Core API (Create, Bind, Handle) | core-api-guide.md |
| Configuration (Ease, Loops, Delay, Callbacks) | configuration-guide.md |
| Advanced (Sequence, Punch/Shake, TMP, Custom) | advanced-guide.md |
| DOTween Pro → LitMotion Migration | dotween-migration-guide.md |
UPM Git URL (add to Packages/manifest.json):
"com.annulusgames.lit-motion": "https://github.com/annulusgames/LitMotion.git?path=src/LitMotion/Assets/LitMotion"
Requirements: Unity 2021.3+, Burst 1.6.0+, Collections 1.5.1+, Mathematics 1.0.0+
// Animate a float from 0 to 10 over 2 seconds
LMotion.Create(0f, 10f, 2f)
.WithEase(Ease.OutQuad)
.Bind(x => value = x)
.AddTo(gameObject); // auto-cancel on destroy
// Get a handle for manual control
var handle = LMotion.Create(0f, 1f, 0.5f)
.BindToPositionX(transform);
handle.Cancel(); // cancel
handle.Complete(); // jump to end
handle.IsActive(); // check if running
| Method | Target |
|---|---|
.BindToPosition(transform) | Transform.position |
.BindToPositionX/Y/Z(transform) | Single axis |
.BindToLocalPosition(transform) | Transform.localPosition |
.BindToScale(transform) | Transform.localScale |
.BindToRotation(transform) | Transform.rotation (Quaternion) |
.BindToEulerAngles(transform) | Euler angles |
.BindToColor(renderer) | Material color |
.BindToAlpha(canvasGroup) | CanvasGroup alpha |
.BindToText(tmpText) | TextMeshPro text |
.AddTo(gameObject) — prevents leaked motions when objects are destroyedMotionHandle is a struct — store it to cancel/complete; check .IsActive() before operatingLMotion.Create allocates nothing on the managed heapEase.Linear, Ease.InOutQuad, Ease.OutBack, Ease.OutElastic, etc. (30+ options)LoopType.Restart, LoopType.Yoyo, LoopType.Flip, LoopType.Increment; -1 = infiniteLSequence.Create() chains motions; .Append() = serial, .Join() = parallelMotionHandle not disposed or .AddTo(gameObject) missing → motion runs after object destroyed, causing NullReferenceException. Always .AddTo() or manually .Cancel() in OnDestroy.Join() runs parallel with the previous .Append(), not with all prior items. Misunderstanding this causes timing bugs in complex sequences