/ 目录 / 演练场 / Unity-MCP
● 社区 IvanMurzak ⚡ 即开即用

Unity-MCP

作者 IvanMurzak · IvanMurzak/Unity-MCP

Unity AI 完整开发和测试循环,包含 100+ 工具、Roslyn 支持的 C# 执行,以及快速配置的 CLI。

IvanMurzak/Unity-MCP 是一个 Unity 插件 + MCP 服务器,向任何 MCP 客户端公开广泛的接口(场景、GameObjects、组件、预制件、材质、包、截图、测试、Roslyn C# 执行)。强调 token 效率和原始工具之上的 AI Skills 层。

为什么要用

核心特性

实时演示

实际使用效果

unity-2.replay ▶ 就绪
0/0

安装

选择你的客户端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "unity-2": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/IvanMurzak/Unity-MCP"
      ],
      "_inferred": true
    }
  }
}

打开 Claude Desktop → Settings → Developer → Edit Config。保存后重启应用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "unity-2": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/IvanMurzak/Unity-MCP"
      ],
      "_inferred": true
    }
  }
}

Cursor 使用与 Claude Desktop 相同的 mcpServers 格式。项目级配置优先于全局。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "unity-2": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/IvanMurzak/Unity-MCP"
      ],
      "_inferred": true
    }
  }
}

点击 Cline 侧栏中的 MCP Servers 图标,然后选 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "unity-2": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/IvanMurzak/Unity-MCP"
      ],
      "_inferred": true
    }
  }
}

格式与 Claude Desktop 相同。重启 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "unity-2",
      "command": "TODO",
      "args": [
        "See README: https://github.com/IvanMurzak/Unity-MCP"
      ]
    }
  ]
}

Continue 使用服务器对象数组,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "unity-2": {
      "command": {
        "path": "TODO",
        "args": [
          "See README: https://github.com/IvanMurzak/Unity-MCP"
        ]
      }
    }
  }
}

加入 context_servers。Zed 保存后热重载。

claude mcp add unity-2 -- TODO 'See README: https://github.com/IvanMurzak/Unity-MCP'

一行命令搞定。用 claude mcp list 验证,claude mcp remove 卸载。

使用场景

实战用法: Unity-MCP

如何用单个提示批量处理导入的资产

👤 Unity 美术师 ⏱ ~25 min intermediate

何时使用: 你有 200 张新纹理,需要一致的导入设置、mip map 和地图集放置。

前置条件
  • Unity 项目已打开,插件已安装 — unity-mcp-cli install-plugin ./MyUnityProject 或导入 .unitypackage
  • 已配置的 MCP 客户端 — 将 Claude Desktop 或 Cursor 指向 CLI 打印的本地 MCP 服务器
步骤
  1. 审计当前设置
    列出 Assets/Textures/UI 中的每个纹理。显示按使用值分组的当前 TextureImporter 设置。✓ 已复制
    → 按设置分组 — 大多数一致,异常值已标记
  2. 应用策略
    对所有纹理设置 compression=HighQuality、filter=Bilinear、mipmaps=false。重新导入。✓ 已复制
    → 进度日志 + 最终一致状态
  3. 视觉验证
    从默认摄像机拍摄场景 MainMenu 的截图 — 确认没有任何看起来损坏的东西。✓ 已复制
    → 返回截图,健全性检查通过

结果: 文件夹中的统一导入设置 + 截图历史记录。

注意事项
  • 重新导入阻止编辑器域重新加载 — 先保存场景;在重新导入完成之前不要发送无关命令
搭配使用: filesystem

如何在编辑器中运行一次性 C# 片段而无需编写脚本

👤 进行一次性清理的 Unity 开发者 ⏱ ~15 min advanced

何时使用: 你想遍历每个预制件并修复损坏的引用 — 仅一次。

步骤
  1. 描述片段
    通过 Roslyn 执行 C#:遍历 Assets/Prefabs 下的每个预制件,找到 MissingScript 组件,列出预制件 + 缺失脚本 guid。✓ 已复制
    → 损坏预制件的报告
  2. 应用修复
    现在删除这些 MissingScript 组件并保存每个预制件。✓ 已复制
    → 更新的预制件计数

结果: 一个没有缺失脚本警告的项目。

注意事项
  • Roslyn 执行具有完整的编辑器权力 — 不良片段可能会损坏项目 — 运行前提交到 git;执行前检查代码片段
搭配使用: github

如何通过截图对视觉回归进行分类

👤 QA、独立开发者 ⏱ ~10 min beginner

何时使用: 测试人员说'菜单看起来有问题',你想快速获得一个真实的图像。

步骤
  1. 打开可疑场景
    打开场景 MainMenu 并从 UI 摄像机拍摄 1920x1080 分辨率的截图。✓ 已复制
    → 返回截图文件路径
  2. 与参考进行比较
    这是黄金图像 [attach]。描述差异。✓ 已复制
    → 特定的注释(偏移、颜色、缺失元素)

结果: 带有图像证据的 bug 报告。

搭配使用: github

组合

与其他 MCP 搭配,撬动十倍杠杆

unity-2 + github

从聊天中自动化重构 + 提交 + PR

将 PlayerController.Speed 字段重命名为 MoveSpeed 到处,运行测试,提交并打开 PR。✓ 已复制
unity-2 + filesystem

将外部 3D 模型导入项目中

将每个 .fbx 从 ~/Downloads/kenney/ 移动到 Assets/Models/ 并将其设置为禁用读/写。✓ 已复制

工具

此 MCP 暴露的能力

工具输入参数何时调用成本
scene_open path: str 在检查或编辑前加载场景 free
gameobject_find query: str 定位对象 free
component_add target, type, values? 附加组件 free
script_create path, body 新建 C# 文件 free
csharp_execute code: str 一次性编辑器自动化 free
test_run mode: 'Edit'|'Play', filter? 运行单元/播放测试 free
screenshot camera?: str, resolution?: {w,h} 视觉验证 free
console_read since_ms? 检查更改后的错误 free

成本与限制

运行它的成本

API 配额
无远程 API — 全部本地
每次调用 Token 数
场景列表可能会很大;用过滤器限制
费用
免费、开源
提示
优先使用窄查询(gameobject_find 'Enemy*')而不是完整层次转储。

安全

权限、密钥、影响范围

最小权限: 项目的本地文件系统写入
凭据存储: 无 — 仅限本地主机
数据出站: 本地主机。你的 LLM 提供商接收工具返回的任何场景/脚本内容。
切勿授予: 不要将 MCP HTTP 端口公开给非环回接口

故障排查

常见错误与修复

项目路径包含空格:工具失败

将项目移动到没有空格的路径。这是一个已记录的限制。

CLI 找不到 Unity

将 UNITY_EDITOR_PATH 环境变量设置为编辑器二进制文件。

验证: $UNITY_EDITOR_PATH -version
csharp_execute 抛出'类型未找到'

执行前 Unity 必须编译成功。先修复红色控制台并刷新。

替代方案

Unity-MCP 对比其他方案

替代方案何时用它替代权衡
MCP for Unity (CoplayDev)你想要最受欢迎的选项,具有大型工具表面没有基于 Roslyn 的任意 C# 执行
mcp-unity (CoderGamester)专注于场景/测试的更简单表面更少的高级工具

更多

资源

📖 阅读 GitHub 上的官方 README

🐙 查看未解决的 issue

🔍 浏览全部 400+ MCP 服务器和 Skills