用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/Besty0728/Unity-Skills --skill unity-timeline命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Automate the Unity Editor through a local REST API — create and edit scripts, build scenes and prefabs, manage assets/materials/lighting, run tests, and drive hundreds of Editor operations across modules. Use when the user wants to actually operate the Unity Editor from chat — create or modify GameObjects/scripts/scenes/assets, batch-edit, or run Editor automation — in any language. Not needed for conceptual Unity Q&A that touches no Editor state — read the matching advisory doc under skills/ instead. 当用户要从对话里实际操作 Unity 编辑器(创建/修改/批量编辑/运行测试)时使用,任何语言均可触发;纯概念问答无需本协议。
Unified batch and async-job orchestration
Index of all Unity Skills modules with per-module mode labels (SA/FA/Mixed). Use to find which module covers a task before loading its doc.
正在显示 SKILL.md
| name | unity-timeline |
| description | Edit Unity Timeline assets and tracks |
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.
Create and modify Unity Timeline assets — add typed tracks, drop clips on tracks, bind objects, set duration / wrap mode, and play/pause/stop the editor preview through the PlayableDirector.
timeline_list_tracks,源码标 SkillMode.SemiAuto)直接执行;其余变更/播放类(timeline_create / add_*_track / timeline_add_clip / timeline_set_duration / timeline_play / timeline_set_binding,标 SkillMode.FullAuto)需用户 grant,grant 后服务端一步执行返结果。timeline_remove_track 标记为 SkillOperation.Delete,被 IsForbiddenInSemi 静态拦截 —— 仅 Bypass 模式或加入 Allowlist 才能调用。timeline_play 仅驱动 Editor 预览(PlayableDirector.Evaluate / Play 在编辑器上下文),不会进入 Play mode。DO NOT (common hallucinations):
timeline_create_animation / timeline_add_track do not exist → use the typed track skills: timeline_add_animation_track, timeline_add_audio_track, timeline_add_activation_track, timeline_add_control_track, timeline_add_signal_tracktimeline_add_keyframe does not exist → Timeline uses clips, not direct keyframes; use timeline_add_cliptimeline_set_duration sets the Timeline asset duration, not individual clip durationRouting:
animator moduleeditor_play or write C# via script moduletimeline_createCreate a new Timeline asset and Director instance.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| name | string | Yes | - | Name of the timeline/object |
| folder | string | No | "Assets/Timelines" | Folder to save asset |
Returns: { success, assetPath, gameObjectName, directorInstanceId }
timeline_add_audio_trackAdd an Audio track to a Timeline.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| name | string | No | - | GameObject name with PlayableDirector |
| instanceId | int | No | 0 | GameObject instance ID |
| path | string | No | - | GameObject hierarchy path |
| trackName | string | No | "Audio Track" | Name of the new track |
Returns: { success, trackName }
timeline_add_animation_trackAdd an Animation track to a Timeline, optionally binding an object.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| name | string | No | - | GameObject name with PlayableDirector |
| instanceId | int | No | 0 | GameObject instance ID |
| path | string | No | - | GameObject hierarchy path |
| trackName | string | No | "Animation Track" | Name of the new track |
| bindingObjectName | string | No | - | Name of the GameObject to bind (animator) |
Returns: { success, trackName, boundObject }
timeline_add_activation_trackAdd an Activation track to control object visibility.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| name | string | No | - | GameObject name with PlayableDirector |
| instanceId | int | No | 0 | GameObject instance ID |
| path | string | No | - | GameObject hierarchy path |
| trackName | string | No | "Activation Track" | Name of the new track |
Returns: { success, trackName }
timeline_add_control_trackAdd a Control track for nested Timelines or prefab spawning.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| name | string | No | - | GameObject name with PlayableDirector |
| instanceId | int | No | 0 | GameObject instance ID |
| path | string | No | - | GameObject hierarchy path |
| trackName | string | No | "Control Track" | Name of the new track |
Returns: { success, trackName }
timeline_add_signal_trackAdd a Signal track for event markers.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| name | string | No | - | GameObject name with PlayableDirector |
| instanceId | int | No | 0 | GameObject instance ID |
| path | string | No | - | GameObject hierarchy path |
| trackName | string | No | "Signal Track" | Name of the new track |
Returns: { success, trackName }
timeline_remove_trackRemove a track by name from a Timeline.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| name | string | No | - | GameObject name with PlayableDirector |
| instanceId | int | No | 0 | GameObject instance ID |
| path | string | No | - | GameObject hierarchy path |
| trackName | string | Yes | - | Name of the track to remove |
Returns: { success, removed }
timeline_list_tracksList all tracks in a Timeline.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| name | string | No | - | GameObject name with PlayableDirector |
| instanceId | int | No | 0 | GameObject instance ID |
| path | string | No | - | GameObject hierarchy path |
Returns: { count, tracks: [{ name, type, muted, clipCount }] }
timeline_add_clipAdd a clip to a track by track name.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| name | string | No | - | GameObject name with PlayableDirector |
| instanceId | int | No | 0 | GameObject instance ID |
| path | string | No | - | GameObject hierarchy path |
| trackName | string | Yes | - | Name of the target track |
| start | double | No | 0 | Clip start time in seconds |
| duration | double | No | 1 | Clip duration in seconds |
Returns: { success, trackName, clipStart, clipDuration }
timeline_set_durationSet Timeline duration and wrap mode.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| name | string | No | - | GameObject name with PlayableDirector |
| instanceId | int | No | 0 | GameObject instance ID |
| path | string | No | - | GameObject hierarchy path |
| duration | double | No | 0 | Fixed duration in seconds |
| wrapMode | string | No | - | Wrap mode: Hold/Loop/None |
Returns: { success, duration, wrapMode }
timeline_playPlay, pause, or stop a Timeline (Editor preview).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| name | string | No | - | GameObject name with PlayableDirector |
| instanceId | int | No | 0 | GameObject instance ID |
| path | string | No | - | GameObject hierarchy path |
| action | string | No | "play" | Action: play/pause/stop |
Returns: { success, action, time }
timeline_set_bindingSet the binding object for a track.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| name | string | No | - | GameObject name with PlayableDirector |
| instanceId | int | No | 0 | GameObject instance ID |
| path | string | No | - | GameObject hierarchy path |
| trackName | string | Yes | - | Name of the track |
| bindingObjectName | string | Yes | - | Name of the object to bind |
Returns: { success, trackName, boundTo }
Exact names, parameters, defaults, and returns are defined by GET /skills/schema or unity_skills.get_skill_schema(), not by this file.