Unity编辑器AI集成插件

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

作者 By jackwrichards
本地部署 Unity插件 AI集成
GitHub

UnityMCP

Pull Requests Badge Issues Badge

Stars Badge Forks Badge

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

建筑

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

1.Unity插件(UnityMCP插件)

Unity编辑器插件,提供:

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

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

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

可用工具

  1. get_editor_state
  • 检索当前Unity编辑器状态
  • 包括活动游戏对象、选择状态、游戏模式状态
  • 提供场景层次和项目结构
  • 支持不同的输出格式(原始、仅脚本、无脚本)
  1. execute_editor_command
  • 直接在Unity编辑器中执行C#代码
  • 完全访问UnityEngine和UnityEditor API
  • 实时执行,全面错误处理
  • 命令超时保护
  1. get_logs
  • 检索和过滤Unity编辑器日志
  • 支持按类型、内容和时间戳进行过滤
  • 可定制的输出字段
  • 缓冲区管理,实现最佳性能

安装

通过Smithery安装

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

BASH``` 1npx -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服务器设置


BASH```
1
2
3cd unity-mcp-server
npm install
npm run build

用法

启动服务器

BASH``` 1 2cd unity-mcp-server node build/index.js


### 从Unity连接


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


### 示例:执行命令


CSHARP```
1
2
3
4
5
6// 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);

发展

构建服务器

BASH``` 1 2cd unity-mcp-server npm run build


### 观察变化


BASH```
1npm run watch

检查MCP通信

BASH``` 1npm 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)获得许可。