Unity代理桥接工具

VibeLink是一个混合Unity包和MCP服务器,使基于CLI的AI代理能够通过模型上下文协议直接访问Unity编辑器,实现视觉验证、直接操作、状态查询和测试运行等功能。

  • by elad12390
  • JavaScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 elad12390/unity-vibe-link

使用说明

VibeLink-Unity代理桥

使AI代理能够自主查看、操作和验证Unity项目。

VibeLink是一个混合的Unity包+MCP服务器,它允许基于CLI的AI代理(Claude Code、Cursor等)通过模型上下文协议直接访问Unity的编辑器。

状态: ✅ 工作! 看 CURRENT_STATUS.md 了解最新的测试结果和已知问题。

快速测试:Unity重启后,运行 ./test-after-restart.sh 验证所有功能是否正常工作。

🎯 核心能力(“超级大国”)

🔴 力量1:眼睛(视觉验证)

  • 捕获游戏视图或场景视图屏幕截图
  • 查看代理实时创建的内容
  • 迭代开发的视觉反馈循环

🔵 力量2:手(直接操作)

  • 直接在Unity编辑器中执行C#代码
  • 无需为快速操作创建文件
  • 即时迭代和测试

🟢 力量3:大脑(状态查询)

  • 使用类似CSS的选择器查询游戏对象状态
  • 获取实际运行时值,而不仅仅是代码
  • 以编程方式验证场景配置

🟡 动力4:时光机(试运行)

  • 进入指定持续时间的播放模式
  • 自动捕获所有日志和错误
  • 自动回归测试

🚀 快速开始

先决条件

  • Unity 2021.3或更高版本(支持.NET标准2.1)
  • Node.js 18+(用于MCP服务器)
  • 支持MCP的AI代理(Claude Code、Cursor等)

安装

1.安装Unity软件包

复制 unity-package 将文件夹放入Unity项目的 Packages 目录:

cd YourUnityProject/Packages
git clone https://github.com/vibelink/unity-vibe-link.git com.vibelink.unity

或者通过包管理器添加:

  1. 开放团结
  2. 窗口→ 包管理器
    • → 从磁盘添加包
  3. 选择 unity-package/package.json

2.安装MCP服务器

cd mcp-server
npm install
npm run build

3.配置您的AI代理

添加到您的MCP配置中(例如。, ~/.config/opencode/mcp.json 或Claude桌面配置):

{
  "mcpServers": {
    "vibelink-unity": {
      "command": "node",
      "args": ["/path/to/unity-vibe-link/mcp-server/build/index.js"]
    }
  }
}

4.使用VibeLink启动Unity

  1. 打开Unity项目
  2. 首选 Tools → VibeLink → Start Host
  3. 当您的代理连接时,VibeLink窗口将显示“已连接:是”

📖 使用示例

示例1:目视验证

用户: “按钮看起来偏离中心”

代理人:

1. unity_capture_view(viewType: "game")
2. [Analyzes screenshot]
3. unity_query_state(selector: "Button")
4. unity_execute_script(code: "GameObject.Find('Button').GetComponent<RectTransform>().anchoredPosition = Vector2.zero;")
5. unity_capture_view(viewType: "game")
6. [Verifies fix]

示例2:程序生成

用户: “以螺旋图案创建50个立方体”

代理人:

unity_execute_script({
  code: `
    for (int i = 0; i < 50; i++) {
      float angle = i * 0.5f;
      float radius = i * 0.2f;
      Vector3 pos = new Vector3(
        Mathf.Cos(angle) * radius,
        i * 0.1f,
        Mathf.Sin(angle) * radius
      );
      GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
      cube.transform.position = pos;
    }
  `
})

示例3:自动化测试

用户: “我开始的时候游戏会崩溃吗?”

代理人:

unity_run_playmode({ duration: 5.0 })
// Returns all logs/errors from 5-second playtest

🛠️ 可用工具

工具 描述 用例
unity_capture_view 屏幕截图游戏/场景视图 视觉验证
unity_execute_script 在编辑器中运行C#代码 快速迭代
unity_query_state 查询游戏对象状态 状态检查
unity_run_playmode 使用日志运行游戏 自动测试
unity_ping 检查连接 健康检查

🔒 安全功能

沙箱

  • 所有代理创建的资产都转到 Assets/_AgentScratchpad/
  • 防止核心项目文件损坏

看门狗(即将推出)

  • 脚本执行超时
  • 无限回路保护
  • 资源使用监控

🏗️ 建筑

┌─────────────────┐         Named Pipe          ┌──────────────────┐
│  Unity Editor   │◄───────────────────────────►│   MCP Server     │
│  (C# Package)   │      <5ms latency           │   (Node.js)      │
└─────────────────┘                              └──────────────────┘
        ▲                                                 ▲
        │                                                 │
        │ EditorWindow                           MCP Protocol
        │ Direct API Access                      (JSON-RPC)
        │                                                 │
        ▼                                                 ▼
┌─────────────────┐                              ┌──────────────────┐
│  Unity Scene    │                              │   AI Agent       │
│  GameObjects    │                              │ (Claude/Cursor)  │
└─────────────────┘                              └──────────────────┘

📝 开发状态

  • [x] 核心传输层(命名管道)
  • [x] 视觉捕捉(游戏/场景视图)
  • [x] 脚本执行框架
  • [x] 使用选择器进行状态查询
  • [x] 播放模式自动化
  • [x] MCP服务器实现
  • []动态C#编译(Roslyn)
  • []高级选择器语法
  • []看门狗保护
  • []性能分析工具
  • []资产修改跟踪

🤝 贡献

这是一个开源项目!欢迎捐款。

开发设置

  1. 克隆存储库
  2. 在Unity 2021.3中打开Unity包+
  3. 跑 npm install 在 mcp-server/
  4. 使用您的AI代理进行更改和测试

📄 许可证

MIT许可证-有关详细信息,请参阅许可证文件

🔗 链接

⚠️ 免责声明

VibeLink已进入 阿尔法在生产项目中使用,风险自负。在启用代理自动化之前,始终备份您的项目。


为人工智能辅助游戏开发的未来而构建 🎮🤖