AI 使用 Unity MCP 自动操作 Unity:从连接配置到生成五子棋场景的实战记录
最近测试了一下 Unity MCP,也就是通过 Model Context Protocol 让 AI 直接和 Unity Editor 通信。
它的核心价值很简单:AI 不再只是“给你写一段代码”,而是可以直接读取 Unity 当前场景、创建对象、写脚本、刷新编译、进入 Play Mode 验证结果,甚至检查 Console 错误。
这篇文章记录一次完整的实测流程:从启动 MCP Server,到 Unity 插件连接,再到让 AI 在 Unity 场景里创建一个单机五子棋 Demo。
测试环境
本次测试环境如下:
Unity 版本:2022.3.14f1c1
MCP for Unity:9.6.8
MCP Server:mcpforunityserver==9.6.8
通信方式:HTTP + WebSocket
Server 地址:http://127.0.0.1:8756
启动命令:
C:\Users\11929\.local\bin\uvx.exe --from "mcpforunityserver==9.6.8" mcp-for-unity --transport http --http-url http://127.0.0.1:8756 --project-scoped-tools
启动成功后,终端会显示 FastMCP Server 正在运行:
Uvicorn running on http://127.0.0.1:8756
Unity 插件连接成功时,可以看到类似日志:
Plugin registered: Game (b1b111f65ef61b01) Registered 30 tools for session Server-level tool visibility synced from Unity
这说明 Unity Editor 已经通过 WebSocket 连上 MCP Server。
MCP 连接验证
连接成功后,可以通过接口确认 MCP Server 和 Unity 实例状态。
健康检查地址:
http://127.0.0.1:8756/health
返回示例:
{
"status": "healthy",
"version": "9.6.8",
"message": "MCP for Unity server is running"
}实例列表地址:
http://127.0.0.1:8756/api/instances
返回中可以看到 Unity 工程:
{
"project": "Game",
"hash": "b1b111f65ef61b01",
"unity_version": "2022.3.14f1c1"
}这一步很关键。如果 instances 是空数组,说明 Server 虽然启动了,但 Unity 插件还没有连接上。
使用 AI 创建测试场景
连接完成后,AI 就可以调用 Unity MCP 工具创建场景。
本次测试新建了一个场景:
Assets/GameMain/Scenes/MCP_TestScene.unity
然后通过 manage_scene 读取当前场景层级,确认场景已经创建成功。
最初测试时,我让 AI 创建了一个 Cube。这里发现了一个有意思的问题:使用 manage_gameobject 的 primitive_type="Cube" 时,对象创建成功,但在当前工程里它只带了 Transform,没有 MeshFilter / MeshRenderer / BoxCollider。
后来改用 Unity 原生命令:
GameObject/3D Object/Cube
再修改对象名称和位置,就可以得到完整 Cube:
Transform MeshFilter MeshRenderer BoxCollider
这也说明 MCP 工具虽然很方便,但实际开发中仍然需要验证结果,不能盲信每一步调用都完全符合预期。
让 AI 写一个单机五子棋
接下来让 AI 在这个场景里实现一个单机五子棋 Demo。
实现方式比较轻量:场景中只保留一个控制对象:
MCP_GomokuGame
挂载脚本:
MCPGomokuGame
脚本路径:
Assets/GameMain/Scripts/MCPGomoku/MCPGomokuGame.cs
这个脚本负责在 Play Mode 自动生成:
15x15 棋盘
棋盘格子
棋盘线
黑白棋子
摄像机
灯光
UI 状态文字
重新开始按钮
玩家落子逻辑
简单电脑 AI
五连胜负判定
运行方式很简单:打开 MCP_TestScene.unity,点击 Play。
玩家执黑,鼠标点击棋盘落子,电脑自动下白子。任意一方五子连线后,左上角会显示胜负结果。
自动编译和验证
AI 写完脚本后,并不是直接结束,而是继续通过 MCP 执行 Unity 刷新和编译。
流程大致是:
写入 C# 脚本
调用 Unity 刷新脚本
等待 Domain Reload
重新连接 MCP Session
读取 Console 错误
挂载脚本到场景对象
保存场景
进入 Play Mode 验证
退出 Play Mode
测试中,Unity 脚本刷新会导致 MCP Session 短暂断开,这是正常现象。等 Unity 编译完成后,插件会重新连接。
最终验证结果:
Console error: 0 Play Mode: entered successfully Runtime objects: generated Play Mode: exited successfully
也就是说,这个五子棋 Demo 不只是“代码写出来了”,而是实际在 Unity 里跑过一次。
Unity MCP 的实际价值
这次测试下来,Unity MCP 最大的价值不是单纯生成代码,而是让 AI 具备了“操作 Unity Editor 的闭环能力”。
传统 AI 辅助开发通常是:
你问问题 -> AI 写代码 -> 你复制到 Unity -> 你编译 -> 你看报错 -> 再问 AI
使用 Unity MCP 后,流程变成:
AI 写代码 -> AI 刷新 Unity -> AI 检查 Console -> AI 修改场景 -> AI 进入 Play Mode 验证
这中间少了很多人工搬运工作。
尤其适合下面这些场景:
快速搭建 Demo 场景
自动生成测试对象
批量修改场景层级
写 Editor 工具
检查 Console 编译错误
生成小游戏原型
辅助 Unity 新功能验证
使用过程中的注意事项
实际使用时有几个坑需要注意。
第一,端口要确认没被占用。之前尝试使用 8080 时,发现该端口被 Windows System 进程占用,访问 /health 返回 404。换到 8756 后正常。
第二,Unity 进入 Play Mode 或刷新脚本时,MCP 连接可能会短暂断开。这个不一定是错误,通常等待 Unity 重新注册即可。
第三,AI 调用工具后仍然要验证结果。比如本次测试中 primitive_type="Cube" 创建出来的对象不完整,最后通过 Unity 菜单命令修正。
第四,建议让 AI 每次大改后检查 Console。Unity 项目里最怕“看起来创建成功,实际有编译错误”。
总结
Unity MCP 让 AI 从“代码建议者”变成了“Unity 操作员”。
它可以直接和 Unity Editor 交互,完成场景创建、脚本写入、编译检查、运行验证等工作。
这次实测中,AI 成功完成了:
MCP Server 启动验证
Unity 插件连接验证
新建 Unity 场景
创建并挂载 MonoBehaviour 脚本
实现单机五子棋
Play Mode 验证
Console 错误检查
对于 Unity 开发来说,这类工具很适合做原型验证和重复性编辑器操作。它还不能完全替代开发者,但已经可以显著减少“写代码、切 Unity、看报错、再改代码”的机械流程。
后续如果结合项目自身的工具链,比如资源规范、UI 框架、打包流程、自动化测试,Unity MCP 的价值会更明显。