article
README
🚀 UnityMCP
UnityMCP 是一款强大的 Unity 编辑器插件,它实现了 Model Context Protocol (MCP),能够让 Unity 与 AI 助手实现无缝集成。该插件具备实时编辑器状态监控、远程命令执行以及全面的日志记录等实用功能。
🚀 快速开始
UnityMCP 能帮助你在 Unity 中轻松集成 MCP 功能,实现与 AI 助手的无缝交互。以下是快速开始的步骤:
- 安装:通过 npm 安装 UnityMCP。
npm install unitymcp
- 启动服务器:安装完成后,运行服务器。
npx unitymcp start
- 导入插件到 Unity 编辑器:
- 将插件文件夹添加到编辑器的
Assets/目录。 - 在 Unity 中启用 MCP 插件。
- 将插件文件夹添加到编辑器的
✨ 主要特性
- 实时状态更新:借助 WebSocket 实时监控编辑器的状态。
- 命令执行:接收并执行来自 MCP 服务器的指令。
- 日志记录:高效收集和管理编辑器的日志信息。
📦 安装指南
通过 npm 安装
npm install unitymcp
启动服务器
npx unitymcp start
在 Unity 编辑器中导入插件
- 将插件文件夹添加到编辑器的
Assets/目录。 - 在 Unity 中启用 MCP 插件。
💻 使用示例
基本用法
启动 MCP 服务器
npx unitymcp start --port=8080
在 Unity 脚本中初始化插件
using UnityMCP;
public class MCPInitializer : MonoBehaviour {
void Start() {
MCPManager.Instance.Connect("ws://localhost:8080");
}
}
高级用法
订阅事件
MCPManager.Instance.OnCommand += HandleCommand;
自定义命令
注册自定义命令处理程序:
[MCPCommand("customcommand")]
public class CustomCommandHandler {
public static void Execute(string[] args) {
// 处理自定义命令
}
}
📚 详细文档
开发指南
创建新命令
- 创建新的 C# 类:
[MCPCommand("newcommand")]
public class NewCommandHandler {
public static void Execute(string[] args) {
// 实现逻辑
}
}
- 注册命令处理程序:
MCPManager.Register(typeof(NewCommandHandler));
扩展插件功能
- 添加新的功能模块:
- 创建新文件夹
Assets/Plugins/Extensions。 - 在其中添加自定义脚本或资产。
- 创建新文件夹
- 编写扩展程序:
public class ExtensionExample : MonoBehaviour {
void Update() {
if (MCPManager.IsConnected) {
MCPManager.Instance.SendHeartbeat();
}
}
}
问题排查
连接问题
- 确保服务器正在运行且 WebSocket 端口开放。
- 检查网络配置,避免防火墙阻止端口。
命令未执行
- 确认命令已正确注册并处理。
- 查看日志以获取更多调试信息。
贡献指南
- Fork 仓库
- 创建功能分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 打开 Pull Request
🔧 技术细节
通信协议
- 使用 WebSocket 协议,端口为 8080。
- 支持双向实时更新。
- 所有通信基于 JSON 格式。
安全特性
- 命令执行超时保护。
- 错误处理和验证机制。
- 日志缓冲管理。
- 连接状态监控。
📄 许可证
本项目采用 MIT License 开源协议。
Scan to contact