Unity编辑器AI集成插件

UnityMCP是一个实现模型上下文协议(MCP)的Unity编辑器插件,提供实时编辑器状态监控、远程命令执行和全面日志功能,实现Unity与AI助手的无缝集成。

  • by jackwrichards
  • C#
  • 本地部署
  • 526 星标
  • 更新于
在 GitHub 查看 Arodoid/UnityMCP

使用说明

UnityMCP

UnityMCP是一个功能强大的Unity编辑器插件,它实现了模型上下文协议(MCP),实现了Unity和AI助手之间的无缝集成。它提供实时编辑器状态监控、远程命令执行和全面的日志记录功能。

建筑

该项目由两个主要部分组成:

1.Unity插件(UnityMCP插件)

Unity编辑器插件,提供:

  • 用于连接状态和监控的调试窗口
  • 用于实时通信的WebSocket客户端
  • C#代码执行引擎
  • 综合测井系统
  • 编辑器状态跟踪和序列化

2.MCP服务器(unity MCP服务器)

基于TypeScript的MCP服务器,通过标准化工具公开Unity编辑器功能:

可用工具

  1. get_editor_state

    • 检索当前Unity编辑器状态
    • 包括活动游戏对象、选择状态、游戏模式状态
    • 提供场景层次和项目结构
    • 支持不同的输出格式(原始、仅脚本、无脚本)
  2. execute_editor_command

    • 直接在Unity编辑器中执行C#代码
    • 完全访问UnityEngine和UnityEditor API
    • 实时执行,全面错误处理
    • 命令超时保护
  3. get_logs

    • 检索和过滤Unity编辑器日志
    • 支持按类型、内容和时间戳进行过滤
    • 可定制的输出字段
    • 缓冲区管理,实现最佳性能

安装

通过Smithery安装

通过以下方式自动安装克劳德桌面版UnityMCP 史密瑟里:

npx -y @smithery/cli install @Arodoid/unitymcp --client claude

先决条件

  • Unity 2022.3或更高版本
  • Node.js 18或更高版本
  • npm 9或更高版本

Unity插件设置

  1. 复制 UnityMCPPlugin 文件夹到Unity项目的Assets目录
  2. 打开Unity编辑器
  3. 通过Unity的顶部菜单栏>UnityMCP>调试窗口访问插件

MCP服务器设置

cd unity-mcp-server
npm install
npm run build

用法

启动服务器

cd unity-mcp-server
node build/index.js

从Unity连接

  1. 打开Unity项目
  2. 打开UnityMCP调试窗口(窗口>UnityMCP>调试窗口)
  3. 插件将自动尝试连接到MCP服务器
  4. 在调试窗口中监视连接状态和日志

示例:执行命令

// Center the selected object
Selection.activeGameObject.transform.position = Vector3.zero;

// Toggle play mode
EditorApplication.isPlaying = !EditorApplication.isPlaying;

// Create a new cube
GameObject.CreatePrimitive(PrimitiveType.Cube);

发展

构建服务器

cd unity-mcp-server
npm run build

观察变化

npm run watch

检查MCP通信

npm run inspector

技术细节

通信协议

  • 基于WebSocket的8080端口通信
  • 双向实时更新
  • 所有通信的JSON消息格式
  • 自动重新连接处理

安全功能

  • 命令执行超时保护
  • 错误处理和验证
  • 日志缓冲区管理
  • 连接状态监控

错误处理

该系统为以下方面提供全面的错误处理:

  • 连接问题
  • 命令执行失败
  • 编译错误
  • 运行时异常
  • 超时情况

贡献

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

本项目根据知识共享署名-非商业4.0国际协议(CC BY-NC 4.0)获得许可。