1. Unity 里让 AI 直接改场景,卡点到底在哪
Unity 项目做久了,你会发现一个很割裂的现状:AI 能帮你写 C# 脚本,但脚本写完还得自己拖到 GameObject 上、手动挂组件、手动摆位置。AI 和 Unity 编辑器之间隔着一堵墙,它看不见你的场景层级,也动不了你的资源。MCP(Model Context Protocol,模型上下文协议)就是来拆这堵墙的。它定义了一套应用程序和 AI 模型交换上下文的标准方式,你可以把它理解成 AI 世界的 USB-C 接口——不管对面是 Claude、Cursor 还是 Codex,只要走 MCP,就能用统一的方式调用工具。
Unity + MCP + Rider 这套组合能做什么?简单说,你在 Rider 的 AI 对话框里打一句“在场景原点建一个城堡,周围种几棵树”,AI 会通过 MCP 协议调用 Unity 编辑器里的工具方法,真的在你的 Scene 视图里把物体创建出来。适合谁?适合已经在用 Unity 做原型、做关卡搭建、做重复性场景操作的开发者,尤其是那些想让 AI 帮忙批量处理资源、自动摆场景的人。
但这里有个前置问题:AI 模型本身需要一个统一的接入点。你不可能在每个 IDE、每个工具里都配一遍不同的 Key 和 endpoint。我试过把模型调用统一收口到 TaoToken,一个 Key 管住所有 AI 请求,Rider 侧和 Unity 侧的 MCP 工具调用都走同一个入口。下面从环境准备到实际跑通,一步步来。
2. TaoToken 统一 Key 的前置准备与 endpoint 说明
在动手配 Unity MCP 之前,先把模型侧的入口理清楚。TaoToken 的角色是给你一个统一的 API 入口,你拿一个 Key,就能在 Rider 的 AI Assistant、Codex、Cline 这些工具里调用模型。官网地址是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 入口是 https://taotoken.net/api 。
你需要准备的东西不多:一个 TaoToken 账号,在控制台里生成一个 API Key。控制台地址是 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite ,API Keys 管理页在 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite 。生成 Key 的时候注意,这个 Key 后面要同时用在 Rider 的模型配置和 MCP 客户端的模型调用里,所以别搞丢了。
模型 ID 怎么选?如果你主要是做代码补全和场景操作指令生成,选一个指令跟随能力强的模型就行。TaoToken 的模型对话页面在 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=chat&utm_campaign=rewrite ,你可以先在那里试一下模型对“创建物体”“修改 Transform”这类指令的理解程度,确认没问题再往 Rider 里配。
这里要强调一个点:MCP 本身不负责模型调用,它只负责把 Unity 的工具暴露给 AI 客户端。真正发起模型请求的是 Rider 里的 AI Assistant 或者你用的 Codex。所以 TaoToken 的 Key 要配在 Rider 的模型设置里,而不是配在 Unity MCP 面板里。Unity MCP 面板只负责启动本地 HTTP Server,把 Unity 的工具方法注册成 MCP 工具。
如果你打算长期用 AI 做 Unity 开发,建议直接上 Coding Plan,地址是 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite ,这样模型调用和 MCP 工具调用都在一个体系里,不用来回切配置。
环境检查清单:Unity 2021.3 或更高版本(我用的是 2022.3 LTS),Python 3.10+,uv 包管理器,Rider 2024.1+,以及一个能正常调用的 TaoToken API Key。Python 和 uv 是 Unity MCP 的依赖,Unity MCP 的 Server 端是用 Python 写的,uv 负责管理它的运行环境。
3. Unity MCP 安装与 Rider 侧可复制配置
3.1 Unity 端安装 MCP For Unity
打开 Unity,Window > Package Manager,点左上角 + 号,选 Add package from git URL,输入:
https://github.com/CoplayDev/unity-mcp.git?path=/MCPForUnity#main点 Add,Unity 会自动拉取包并安装。如果网络原因拉不下来,就去 GitHub 把仓库下载到本地,然后用 Add package from disk,选中本地 MCPForUnity 文件夹里的 package.json。
安装完成后,菜单栏会出现 Window > MCP For Unity。打开面板,如果提示缺 Python 或 uv,点面板上的按钮自动安装。都装好后,打开 Local Setup Window,你会看到 Toggle MCP Window 和 Start Server 两个关键按钮。
Client 选择这里,如果你用 Rider,选 Rider GitHub Copilot 或者 Rider AI Assistant。URL 保持默认的 http://localhost:8080。然后点 Start Server,会弹出一个终端窗口,这个窗口别关,关了 Server 就停了。终端里会显示 MCP Server 正在监听 8080 端口。
3.2 Rider 侧 MCP 配置
打开 Rider,左上角菜单 > Settings > Tools > AI Assistant > Model Context Protocol (MCP)。点 + 号新建一个 MCP Server,类型选 HTTP,然后填入以下 JSON:
{ "mcpServers": { "unityMCP": { "url": "http://localhost:8080/mcp" } } }注意 URL 后面要加 /mcp,这是 MCP 协议的路径。保存后,Rider 会尝试连接这个本地 Server。如果连接成功,你会在 MCP 面板里看到 Unity 暴露出来的一堆工具,比如 create_gameobject、set_transform、create_primitive 之类的。
3.3 Rider 模型侧接入 TaoToken
MCP 配好了,但 AI 还没接上模型。在 Rider 的 Settings > Tools > AI Assistant > Models 里,添加一个自定义模型入口。Base URL 填 https://taotoken.net/api ,API Key 填你在 TaoToken 控制台生成的 Key,Model ID 填你选好的模型标识。如果你用的是 Codex 或者 Cline 作为 MCP 客户端,配置方式类似,Codex 的 auth.json 里需要写全三件套:
{ "baseUrl": "https://taotoken.net/api", "apiKey": "sk-你的TaoTokenKey", "model": "你的模型ID" }Cline 的 MCP 配置里也是同样的三件套逻辑:Base URL、Key、Model ID,一个都不能少。Claude Code 的话,在 settings.json 里配 Anthropic 兼容的 endpoint,文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 有详细说明。
4. 验证 MCP 工具调用与 Rider 侧请求走通
配置完成后,先做一次最小验证。在 Rider 的 AI 对话框里输入:
在 Unity 场景原点创建一个 Cube,命名为 TestCube,然后把它的 Y 轴位置设为 2。发送后,观察 Rider 的 MCP 调用日志。你应该能看到 AI 依次调用了 create_primitive 或 create_gameobject,然后调用 set_transform 或 set_position。如果一切正常,切回 Unity,Scene 视图里会出现一个 Cube,Inspector 里 Position 的 Y 值是 2。
这一步验证了两个东西:一是 Rider 到 TaoToken 的模型请求走通了,AI 能理解你的指令并生成工具调用;二是 Rider 到 Unity MCP Server 的本地连接走通了,工具调用被正确执行。
如果 AI 没有调用工具,而是直接回复了一段文字,说明 MCP 工具没有正确注册到 Rider。检查 Rider 的 MCP 面板里 unityMCP 是否显示绿色连接状态,以及 Unity 的 MCP For Unity 面板里 Start Server 是否还在运行。
再做一个稍微复杂的验证:让 AI 在场景里创建一个城堡。输入:
用 Unity 自带的 Cube 和 Cylinder,在场景原点建一个简单的城堡,中间一个主塔,周围四个角楼。AI 会多次调用 MCP 工具,创建多个物体并设置位置。你可以在 Unity 的 Hierarchy 里看到物体一个个出现。这个过程可能需要十几秒,取决于模型响应速度和工具调用次数。
验证模型请求是否真的走了 TaoToken,可以在 TaoToken 控制台的用量日志里看请求记录。每次 AI 调用模型,都会有一条记录,包含时间、模型 ID、token 消耗。如果日志里有记录,说明请求确实走了 TaoToken 的 endpoint。
5. 常见报错排查:401、local proxy failed、reading choices
5.1 401 Unauthorized
这是最常见的报错。Rider 的 AI 对话框里如果出现 401,说明 TaoToken 的 API Key 没配对或者过期了。检查 Settings > Tools > AI Assistant > Models 里的 API Key 是否和你 TaoToken 控制台里生成的一致。注意 Key 前面有没有多余空格,或者有没有把 Key 配到了 MCP Server 的配置里而不是模型配置里。MCP Server 的 JSON 里只写 url,不写 Key。
5.2 local proxy failed 或 connection refused
这个报错说明 Rider 连不上 Unity MCP Server。检查三件事:Unity 的 MCP For Unity 面板里 Start Server 是否在运行;那个终端窗口是否还开着;URL 是否写成了 http://localhost:8080/mcp。如果终端窗口关了,回 Unity 重新点 Start Server。如果端口被占用,可以在 MCP For Unity 面板里改端口,然后同步改 Rider 的 URL。
5.3 reading choices 报错
这个报错通常出现在模型返回格式不符合预期的时候。AI 返回的内容里没有正确的 tool_calls 结构,Rider 解析不了。原因可能是模型 ID 选得不对,或者模型不支持 function calling。换一个指令跟随能力更强的模型试试。在 TaoToken 的模型对话页面先测试一下模型对工具调用格式的支持程度。
5.4 OAuth 相关报错
如果你用的是 Claude Code 或者某些需要 OAuth 的客户端,可能会遇到 OAuth token 失效的报错。这种情况下,检查你的客户端配置里是否同时配了 API Key 和 OAuth。TaoToken 的接入方式是用 API Key,不需要 OAuth。把 OAuth 相关的配置去掉,只保留 Base URL + Key + Model ID 三件套。
5.5 MCP 工具列表为空
Rider 的 MCP 面板里如果看不到 Unity 的工具,说明 MCP Server 没有正确注册工具。检查 Unity 的 MCP For Unity 面板里 Tools 列表是否有内容。如果 Unity 侧有工具但 Rider 侧看不到,尝试在 Rider 里断开 MCP 连接再重新连接。有时候需要重启 Rider 才能刷新工具列表。
6. 把 AI 操控 Unity 变成日常开发习惯
跑通之后,你可以把更多重复性操作交给 AI。比如批量重命名场景物体、按规则摆放资源、生成测试用的地形。MCP For Unity 面板里的工具可以单独启用或禁用,对应的脚本在 Packages > MCP For Unity > Tools 里,你可以自己扩展工具方法。
如果你想让 AI 在 Unity 里做更复杂的操作,比如读取某个脚本的内容然后修改它,可以在 MCP 工具里加一个 read_script 和 write_script 的方法。这样 AI 就能在 Rider 里改代码,然后通过 MCP 让 Unity 重新编译并应用。
长期用的话,建议把 TaoToken 的 Coding Plan 用起来,地址是 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite ,模型调用和 MCP 工具调用都在一个额度里,不用分开管理。API Keys 管理页在 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite ,需要换 Key 的时候直接在那里操作。
最后说一个实际踩过的坑:Unity MCP Server 的终端窗口在某些系统上会被 Rider 的终端抢占,导致 Server 看起来在运行但实际上没监听。解决办法是在 Unity 的 MCP For Unity 面板里换一个端口,比如 8081,然后 Rider 的 URL 同步改成 http://localhost:8081/mcp。这个坑排查了半小时,换端口后一次跑通。