中文EN

@opdsh/unity-plugin

tools已测通过npmMIT

通过官方 unity CLI 在 DSH 中操作 Unity 编辑器:实时场景命令、编辑器内 C# 求值、运行时命令发现,均复用常驻的 unity shell 会话;另有原始 CLI 通道用于建工程、跑测试与构建。同时挂载 Unity 官方技能集,以及插件自带的 Unity 工作流与 Asset Store 技能。

下载量 / Downloads
2,086
依赖体积 / node_modules
0.13 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

安装

dsh plugin --profile web add @opdsh/unity-plugin

沙箱测试结果

阶段结果
1 安装✓
2 列装✓
3 挂载✓
4 启动—

四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。

README

[English](README.md) | 中文

DeepSeek Harness 的 Unity 插件

用 AI agent 开发 Unity 游戏。 本插件把 DeepSeek Harness 接入 Unity 游戏引擎:你用自然语言描述想要的效果,agent 直接在 Unity 编辑器里完成工作——创建工程、搭建场景、编写并挂载 C# 脚本、导入你在 Asset Store 购买的资源、运行测试、打出可发布的构建。

插件通过 Unity 官方的 unity 命令行工具与编辑器通信,所以所有操作都发生在真实运行的编辑器里,与你屏幕上看到的内容始终一致。

你可以做什么

  • 从零开始做一个游戏。 说一句「用 URP 模板新建一个叫 SpaceRunner 的 3D 工程」,agent 会挑选模板、创建工程并打开编辑器。
  • 动口不动手搭场景。 添加 GameObject、摆放位置、挂载组件、连接预制体。场景命令在一秒内往返完成,无需重新编译。
  • 编写玩法代码。 agent 会创建 C# 脚本、等待重新编译完成,再把脚本挂到正确的对象上。对于没有专用命令的操作,它还能直接在编辑器内执行 C#。
  • 让你的 Asset Store 资源库派上用场。 agent 可以搜索你在 Unity Asset Store 拥有的资源(「My Assets」),下载并直接导入当前打开的工程。详见[使用你的 Asset Store 资源](#使用你的-asset-store-资源)。
  • 看到并测试结果。 截取 Scene 视图截图、进入和退出 Play 模式、运行 EditMode 和 PlayMode 测试。
  • 发布游戏。 为目标平台启动玩家构建。
  • 遵循 Unity 官方最佳实践。 插件内置 Unity 官方的 agent 技能集(UI、物理、性能优化、多人联机、包管理等),agent 按 Unity 的推荐做法工作,而不是靠猜。

前置条件

安装前请确认你已具备:

1. DeepSeek Harness 0.1.7 或更新版本。 更早的版本不受支持。

2. unity 命令行工具,已安装、已登录且许可证已激活。可用以下命令检查:

   unity auth status
   unity license status

3. Unity 6.0 或更新版本,通过 Unity Hub 安装。实时控制编辑器需要 Unity 6。

4. Python 3.9 或更新版本(仅 Asset Store 功能需要;无需安装任何第三方包)。

每个希望由 agent 操作的工程都需要 com.unity.pipeline 包。你不必手动添加:agent 可以替你安装,你也可以自己执行一次:

unity pipeline install --project-path /path/to/MyGame

安装

把插件加入你使用的 DeepSeek Harness profile:

dsh plugin --profile <name> add @opdsh/unity-plugin
dsh --profile <name>

就这样。启动 harness,然后让 agent 帮你做一个 Unity 游戏吧。

<details>

<summary>其他安装来源(GitHub 或本地检出)</summary>

dsh plugin --profile <name> add github:opdsh/unity-plugin  # 从 GitHub
dsh plugin --profile <name> add /path/to/unity-plugin      # 本地检出

从 GitHub 安装时会在安装过程中构建该包,而 pnpm 在包被加入白名单前会阻止这一行为。若首次尝试以 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 失败,在 profile 的 pnpm-workspace.yaml 中加入以下内容后重新执行:

onlyBuiltDependencies:
  - "@opdsh/unity-plugin"

本地检出以链接方式安装,无需白名单条目,但需要先执行 pnpm install && pnpm build 自行构建。

要确认插件已加载,运行 dsh --profile <name> --dump-config 并查找 # == unity-plugin 段落。

</details>

第一次使用

1. 打开你的工程编辑器,或者让 agent 新建一个。

2. 提一个具体的要求,例如:

> 打开 C:\Games\SpaceRunner 这个工程,在原点添加一个带 Rigidbody 的 Player 胶囊体,并写一个用 WASD 控制它移动的脚本。

3. agent 会检查正在运行的编辑器、发现编辑器提供的命令、完成修改并保存场景。

小贴士:

  • agent 启动编辑器时会带上 -automated 参数,避免弹窗阻塞。你自己打开编辑器也没问题,agent 会找到它。
  • 新工程第一次打开时 Unity 需要导入资源,可能耗时几分钟。agent 会等到编辑器报告「ready」再继续。
  • 任何时候想看看场景的样子,让 agent 截一张图即可。

使用你的 Asset Store 资源

你在 Unity Asset Store 购买或领取过的所有资源,agent 都可以使用。它使用 unity CLI 和 Unity Hub 已经登录的同一个 Unity 账号,无需任何额外设置。

按名称或描述提出需求即可:

把 2D Game Kit 加到这个工程里。
在我的资源里找一个低多边形自然场景包并导入。

agent 会依次:

1. 搜索你的「My Assets」资源库,选出匹配的包。

2. 检查该包是否支持你工程的 Unity 版本,不匹配时提醒你。

3. 从 Unity 服务器下载 .unitypackage。

4. 静默导入当前打开的工程,不弹出导入对话框。

5. 等待可能触发的重新编译完成,并告诉你文件落在 Assets/ 下的哪个文件夹。

只有你已经拥有的资源才能这样使用。想用新资源时,在浏览器里于 Asset Store 购买或领取,它会立刻出现在你的资源库中。若 Unity 登录已过期,agent 会请你执行 unity auth login 或通过 Unity Hub 登录,然后继续。

Asset Store 功能支持 Windows 和 macOS,需要 Python 3.9 或更新版本。

配置

大多数人不需要改任何东西。如果确实需要:

在 Web 界面中: 打开侧边栏的 插件,选择 @opdsh/unity-plugin。它的页面包含所有设置:unity 可执行文件与默认工程路径、各项超时与输出上限、常驻 shell,以及 Unity 技能集(开关、仓库、ref、缓存目录)。修改保存在 profile 的 cordis.patch.yml 中并即时生效,无需重启;留空的字段沿用默认值。

在 profile 中: CI 凭据(env)只能在这里设置,因此不会传到浏览器;其他设置也都可以在这里配置。请编辑 profile 的 cordis.patch.yml。一个补丁会替换插件的整个 config 块,因此需要写全所有你想保留的键:

- insert:
    - id: unity
      name: '@opdsh/unity-plugin'
      config:
        unityBin: unity                    # unity CLI 不在 PATH 中时填写其路径
        projectPath: /abs/path/to/MyGame   # 编辑器命令的默认工程
        commandTimeoutMs: 120000           # 单条编辑器命令的超时;必须大于 0
        cliTimeoutMs: 600000               # 构建、测试等 CLI 调用的超时;必须大于 0
        graceMs: 5000
        outputMaxBytes: 512000             # 必须大于 0
        env: {}                            # 例如 CI 用的 UNITY_SERVICE_ACCOUNT_ID / SECRET
        warmShell: true                    # 保持一个 `unity shell` 常驻,加速编辑器命令
        shellIdleMs: 300000                # 空闲多久后关闭常驻 shell
        unitySkillsDownload: true          # 设为 false 则不下载 Unity 技能集
        unitySkillsRepo: https://github.com/Unity-Technologies/skills  # 置空同样会关闭下载
        unitySkillsRef: 87fac23d66a1f44f5e06c2935eccce0b40b9715a       # 也可填分支,如 main

unitySkillsRef 固定了 Unity 官方技能的版本。默认是一个经过测试的提交;设为 main 可跟随最新内容。每个 ref 只下载一次,存放在 <dshHome>/cache/unity-plugin/unity-skills;若下载失败,已有缓存继续生效。

故障排查

现象 · 处理方法

agent 报告找不到编辑器实例(STATUS_NO_INSTANCES) · 用 Unity 6 打开该工程,并确认已为它执行过 unity pipeline install。

CLI 调用以退出码 3 失败 · 用 unity auth login 重新登录。

CLI 调用以退出码 4 失败 · 没有可用的许可证。检查 unity license status。注意:打开着的编辑器会一直占用一个许可证席位,直到它关闭。

Asset Store 搜索报 AUTH_EXPIRED 或 AUTH_NOT_FOUND · 用 unity auth login 或通过 Unity Hub 登录,然后让 agent 重试。

在 Linux 上使用 Asset Store · 暂不支持;目前只能在 Windows 和 macOS 上读取登录令牌。

其他问题 · 让 agent 运行 unity doctor,或查看编辑器日志(unity logs)。

包含的内容

Agent 工具

工具 · 用途

unity_status · 列出插件可以通信的正在运行的编辑器。

unity_list_commands · 发现已连接编辑器的命令及其参数。

unity_command · 执行一条实时编辑器命令,如 create_gameobject、get_scene_hierarchy、save_scene。

unity_eval · 在编辑器内执行 C#,可完整访问 UnityEngine 和 UnityEditor。

unity_cli · CLI 提供的其余全部能力:projects create、open、pipeline install、templates list、editors、test、build、auth、license、logs。

技能

  • Unity 官方技能集,从 Unity-Technologies/skills 下载:unity-cli、new-unity-project、build-live-game、UI 系列、包管理、物理、性能优化、多人联机等。
  • unity-workflow:如何用上述工具安全地驱动编辑器(先检查状态、引导工程、场景循环、测试与构建)。
  • unity-asset-store:搜索、下载并导入你在 Unity Asset Store 拥有的资源。

同名的项目级或用户级技能会覆盖内置技能。

面向贡献者

<details>

<summary>从源码构建与运行</summary>

pnpm install
pnpm typecheck
pnpm build

构建产出 lib/index.mjs(dsh Loader 导入的 Node 端)与 lib/client.js(浏览器端,通过 package.json 中的 dsh.client 声明,由 Web 界面在 `/plugins/@opdsh/unity-plugin/client.

…(truncated)

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:7,最后更新 2026-09-28

链接

GitHub · Homepage · npm

同类插件