故障排查
解决常见的 Unity MCP 问题——AI 客户端中无工具、登录与连接错误、服务器下载失败、NuGet DLL 错误以及端口冲突。
本页汇总了人们在使用 Unity MCP 时最常遇到的问题及其解决方法。先看快速检查清单;如果没解决,就在下面找到对应的症状。
快速检查清单
- 打开 Window > AI Game Developer — MCP,查看时间线:Unity、MCP server 和 AI agent 都应该是绿色。
- 检查 Unity Console 是否有错误。项目中任何一处编译错误都会阻止插件的编辑器脚本加载。
- 运行
unity-mcp-cli status ./MyUnityProject,查看 Unity 是否在运行,以及哪个服务器可访问。 - 任何配置更改后都要重启你的 AI 客户端。
- 确保插件和你的扩展都是当前版本。
AI 客户端没有显示 Unity 工具
- 客户端在 Unity 就绪之前就连接了。 在客户端中重新连接 MCP 服务器(Claude Code 中是
/mcp),或者在窗口显示 Connected 后重启客户端。 - 客户端未配置,或使用了旧配置。 在窗口中为你的 agent 点击 Configure(或 Reconfigure),或运行
unity-mcp-cli setup-mcp <agent> .,然后重启客户端。 - Cloud 模式未登录。 窗口显示 "Authorization Required"。点击 Authorize 并在浏览器中批准该代码。
- 打开了多个项目。 未固定的
https://ai-game.dev/mcpURL 可能被路由到另一个 Editor。请使用 Configure 写入的固定 URL。 - agent 是从其他文件夹启动的。 只有当客户端在 Unity 项目文件夹中运行时,才会读取
.mcp.json或.cursor/mcp.json等项目级配置。 - 在 VS Code 中,将 Copilot Chat 切换到 Agent 模式。
Cloud 登录问题
- "Authorization Required" 反复出现。 你的凭证已过期或被撤销。再次点击 Authorize,或运行
unity-mcp-cli login --force。 - "Connection Required"。 登录成功但 Unity 未连接。点击 Connect。
- 登录了错误的账号。 点击 Revoke(这会登出本机上所有 AI Game Dev 工具),然后用正确的账号点击 Authorize。
unity-mcp-cli login会在切换账号前询问。
账号的会话与设备管理见 Authentication。
本地 MCP 服务器无法启动(Custom 模式)
- 二进制文件尚未下载。 它会被放到
Library/mcp-server/<platform>/。如果下载失败(离线、防火墙、代理),窗口会显示 "Server binary error" 和一个 Download / Retry server 按钮。你也可以使用 Tools > AI Game Developer > Server > Download Binaries。 - 杀毒软件拦截了可执行文件。 在安全软件中允许
gamedev-mcp-server,然后重试。 - 传输方式为 stdio。 使用 stdio 时由 AI agent 自己启动服务器,因此 Start 按钮被禁用。如果你想让 Unity 来运行它,请切换到
http。 - 查看服务器日志。 使用 Tools > AI Game Developer > Server > Open Logs 和 Open Log Errors。
- 直接测试服务器。 Tools > AI Game Developer > Server > Launch MCP Inspector 会针对本地服务器打开 MCP Inspector(仅限 HTTP 传输;需要 Node.js)。
端口冲突
每个项目都会根据其路径得到一个 20000 到 29999 之间的固定端口。如果该端口已被其他程序占用,窗口会将 MCP 服务器显示为 External。找到该进程:
netstat -ano | findstr :<port>lsof -i :<port>停止该进程,或者断开连接并在 Server URL 中输入另一个端口(例如 http://localhost:25000),然后再次点击 Configure,让 agent 使用新端口。
编译期间断开连接
每次代码更改后以及进入 Play 模式时,Unity 都会重新加载脚本。插件会在重载前断开连接,并在重载后重新连接,因此短暂的 "Disconnected" 或 "Connecting..." 是正常的。在重载期间正在进行的工具调用可能会失败;请让 agent 重试。
安装后出现编译错误或缺少 DLL
插件会从 NuGet 下载其 .NET 依赖项到 Assets/Plugins/NuGet。
- 关于缺少 McpPlugin、ReflectorNet 或 SignalR 类型的错误。 等待首次导入完成,然后使用 Tools > AI Game Developer > Dependencies > Force Resolve NuGet DLLs。
- Windows 上 "Path too long"。 即使启用了长路径,Unity 的运行时也无法打开超过 Windows 260 字符路径限制的 DLL。请将项目移动到更短的文件夹,例如
C:/Projects/MyGame。 - 干净重装。 关闭 Unity,删除
Assets/Plugins/NuGet及其.meta文件,然后重新打开项目。
项目路径包含空格
如果 Console 显示 "The project path contains spaces",请将项目移动到不含空格的文件夹。插件发出此警告是因为此类路径在使用过程中可能引发问题。
工具调用失败或超时
- 诸如 "object not found" 的错误。 请让 agent 先进行查询(例如使用
rql-query),而不是猜测名称或路径。资源路径以Assets/开头。 - 长时间操作超时。 对于耗时的烘焙或大型测试运行,可在窗口中调高 Tool timeout (ms)(默认 300000)。
- 批处理模式下截图失败。 使用
-nographics启动的 Editor 没有图形设备。请在不带-nographics的情况下以无头模式启动;unity-mcp-cli open --headless已经这样做了。 - 自定义工具抛出线程错误。 将 Unity API 调用包裹在
MainThread.Instance.Run中。参见 Custom tools。
unity-mcp-cli 问题
open停在 "Enter Safe Mode?"。 CLI 会自动点击 Ignore。在 macOS 上请为终端授予辅助功能(Accessibility)权限;在 Linux 上请安装xdotool。exec等待后放弃。 项目已在某个并非由 CLI 启动的 Editor 中打开,且其插件没有在本地响应(例如它连接到了云端)。请连接插件、将其切换到 Custom,或传入--url。setup-skills失败。 它需要一个正在运行的 Editor 且插件已连接。请先运行open和wait-for-ready。- 使用
--verbose可在任何命令上获取详细日志。
完全重置
- 关闭 Unity。
- 删除项目中的
Library/mcp-server/。 - 重新打开 Unity,选择 Tools > AI Game Developer > Reset Config。
- 重新登录(Cloud)或启动服务器(Custom),然后为你的 agent 点击 Configure。
- 重启你的 AI 客户端。
获取帮助
使用 AI Game Developer 窗口底部的 Help / Talk(Discord)或 Bug Report(GitHub issues)。请附上你的 Unity 版本、操作系统、插件版本(显示在窗口中)、Console 中的错误以及复现步骤。你也可以浏览 FAQ 或全站 FAQ。