使用 Cursor 控制 Unity —— Unity MCP 全流程实践及问题排查目录

使用 Cursor 控制 Unity —— Unity MCP 全流程实践及问题排查

目录

  1. 项目简介

  2. 环境准备

  3. Unity MCP Bridge 安装与配置

  4. MCP Server 启动与自动配置

  5. 使用 Cursor 控制 Unity —— 创建物体示例

  6. 常见问题及错误排查

    • “remote origin already exists” 错误

    • Cursor 配置文件路径/格式问题

    • Unity MCP Bridge 与 MCP Server 端口不一致问题

  7. 总结与建议


1. 项目简介

本文主要介绍如何通过 Unity MCP 系统,实现用 Cursor直接输入指令,控制 Unity 编辑器进行游戏开发任务(如创建物体、清空控制台等)。本文内容基于 GitHub 上 unity-mcp 项目的最新版本,并结合实际调试过程中的错误信息和解决方案。


2. 环境准备

在开始之前,请确保以下软件和环境已正确安装:

  • Unity 编辑器(建议 2020.3 LTS 或更新版本)

  • Python 3.10 及以上

  • Git(用于克隆代码仓库)

  • uv 模块:在命令行中执行 pip install uv

  • Cursor 客户端(或 Claude Desktop,根据个人习惯选择)


3. Unity MCP Bridge 安装与配置

3.1 在 Unity 项目中导入 MCP Bridge 插件

  1. 打开 Unity 项目。

  2. 进入菜单 Window > Package Manager

  3. 点击左上角的 “+” 按钮,选择 “Add package from git URL…”

  4. 输入以下 Git URL:

    https://github.com/justinpbarnett/unity-mcp.git?path=/UnityMcpBridge
    
  5. 点击 Add,等待安装完成。

  6. 安装完成后,通过 Window > MCP > MCP Editor 打开 MCP Bridge 面板,观察是否显示状态信息(如 “UnityMcpBridge started on port 6400”)。

3.2 常见错误:

  • 出现错误信息 “remote origin already exists”
    说明在安装过程中尝试执行 git remote add origin 时,发现仓库中已存在远程仓库。
    解决方法:
    如果代码是通过 ZIP 包下载的,不必担心;如果是克隆仓库,可在命令行进入 MCP Server 目录执行:

    git remote remove origin
    

    然后重新添加(可选):

    git remote add origin https://github.com/justinpbarnett/unity-mcp.git
    

    该错误不会影响 MCP Bridge 的正常运行,可以忽略。


4. MCP Server 启动与自动配置

4.1 配置文件设置

Cursor 的 MCP 服务器配置文件存放在:

C:\Users\Administrator\.cursor\mcp.json

示例配置内容如下,请确保格式正确(替换为你的文件路径,注意使用正斜杠以避免转义问题):

{
  "mcpServers": {
    "unityMCP": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "F:/_Unity/_Project/TestProject/UnityMCPTest/Packages/unity-mcp-master/UnityMcpServer/src",
        "server.py"
      ]
    }
  }
}

如果文件中显示黄灯,并提示 “Incorrect Path”,请检查 JSON 格式、路径是否存在、是否有多余的符号等。建议使用正斜杠 / 替换 Windows 路径中的 \,确保文件路径完全正确。

4.2 自动启动脚本(Windows 批处理)

为了方便启动 MCP Server,我制作了一个批处理脚本。内容如下,保存为 MCP_Server_Start.bat

@echo off
title Unity MCP Server Launcher
echo 正在启动 Unity MCP Server...
cd /d "F:\_Unity\_Project\TestProject\UnityMCPTest\Packages\unity-mcp-master\UnityMcpServer\src"
uv run server.py
pause

使用方法:

  1. 双击运行 MCP_Server_Start.bat

  2. 如果一切正常,命令行会显示类似:

    INFO: Connected to Unity at localhost:6400
    

    表示 MCP Server 已经与 Unity MCP Bridge 建立连接。

4.3 端口注意事项

 Unity MCP Bridge 显示的端口为 6400,而 MCP Server 默认监听可能为 6500。
目前,unity-mcpserver.py 默认使用 transport='stdio' 方式,与客户端通信不依赖 TCP 端口。
因此,只需保证:

  • Unity MCP Bridge 正常启动(显示端口 6400,连接状态为 “Connected”)

  • Cursor MCP Server 配置正常,并在配置文件中指定正确的目录


5. 使用 Cursor 控制 Unity —— 创建物体示例

5.1 在 Cursor 中新建 .py 文件

  1. 在 Cursor 左侧的文件浏览器中,定位到 MCP Server 代码所在目录(如 UnityMcpServer/src)。

  2. 右键空白处,选择 “新建文件”,命名为 create_cube.py

5.2 编写控制指令代码

create_cube.py 中输入以下内容:

from tools.manage_gameobject import create_primitive

# 创建一个立方体
create_primitive("Cube")

说明:这里的 create_primitive 函数会调用 MCP Server 的工具模块,指令 Unity 创建一个 Cube。你也可以使用类似代码创建 Sphere、Light 等。

5.3 执行代码

  1. 确保 MCP Server 已经启动并连接 Unity。

  2. 在 Cursor 中打开 create_cube.py,然后按下 Ctrl + Enter 或点击界面上的 “Run with MCP” 按钮。

  3. 观察 Unity 编辑器,应该会在场景中自动生成一个 Cube。

5.4 使用中文指令

在 Cursor 的聊天窗口中,你也可以直接输入中文指令,例如:

创建一个红色球体,位置在 (0, 1, 0)

如果 MCP 客户端支持自然语言转代码(部分工具支持),会自动转换为相应的 Python 脚本并发送给 Unity 执行。


6. 常见问题及错误排查

6.1 “remote origin already exists” 错误

  • 原因: 在安装 MCP Server 时,Git 发现远程仓库已经存在。

  • 解决方案: 进入服务器代码目录(如果是 Git 仓库),运行:

    git remote remove origin
    

    该错误通常不会影响实际功能。

6.2 Cursor 配置文件黄灯提示 “Incorrect Path”

  • 原因: 配置文件格式或路径写法不规范(例如混用了对象和字符串、路径中使用了错误的斜杠)。

  • 解决方案:

    • 将路径中的反斜杠 \ 改为正斜杠 /,并确保 JSON 格式正确。

    • 示例正确配置参见上文 mcp.json 文件内容。

    • 保存后重启 Cursor,黄灯应变为绿灯。

6.3 Unity MCP Bridge 与 MCP Server 连接不成功

  • 原因:

    • MCP Server 未启动或运行错误

    • 配置文件路径不匹配

    • 端口设置不一致(如果使用端口模式)

  • 解决方案:

    • 确认已通过批处理脚本或命令行运行 uv run server.py,终端显示 “Connected to Unity…”

    • 在 Unity MCP Bridge 窗口中确认状态是否为 “Connected to MCP Client”

    • 检查防火墙或杀毒软件是否阻止本地通信

6.4 自动启动与关闭流程

启动流程:
  1. 打开 Unity 项目(确保 MCP Bridge 插件已加载)

  2. 运行批处理脚本 MCP_Server_Start.bat(自动启动 MCP Server)

  3. 打开 Cursor 客户端(配置文件位于 C:\Users\Administrator\.cursor\mcp.json,显示 unityMCP 为绿灯)

  4. 在 Cursor 中执行控制指令(如新建 .py 文件,执行 create_cube.py 等)

关闭流程:
  1. 在 MCP Server 命令行窗口中按 Ctrl+C 终止 Python 服务

  2. 关闭 Unity 编辑器

  3. 退出 Cursor 客户端


7. 总结与建议

本文详细介绍了使用 Unity MCP 与 Cursor 结合控制 Unity 编辑器的全流程,包括:

  • 环境准备与插件安装

  • 配置文件的正确写法与常见错误排查

  • 批处理脚本实现自动启动 MCP Server

  • 如何在 Cursor 中创建 Python 脚本以控制 Unity(例如创建 Cube)

  • 常见问题(如 Git 远程仓库错误、配置文件格式问题、端口不一致问题)及解决方案

  • 启动和关闭流程的详细说明

希望本文能帮助你快速搭建并调试 Unity MCP 系统,实现通过 Cursor 自然语言输入控制 Unity 编辑器进行开发。

### 关于 Cursor MCP Server 的技术文档和配置教程 Cursor MCP (Multi-Command Protocol) Server 是一种用于处理多个命令请求的服务端实现,通常应用于需要高效管理和执行多条指令的应用场景中。对于像 SQLite 数据库这样的环境,通过配置特定的 MCP 服务器可以简化数据访问流程。 #### 配置示例 为了设置一个基于游标的 MCP 服务器来连接到本地数据库,可以通过 JSON 文件定义服务参数: ```json { "mcpServers": { "cursor_sqlite": { "command": "uvx", "args": [ "mcp-server-cursor-sqlite", "--db-path", "/path/to/your/database.sqlite" ] } } } ``` 上述配置展示了如何指定 `mcp-server-cursor-sqlite` 命令以及传递必要的参数给它,比如数据库路径[^1]。 当涉及到更复杂的数据操作时,使用带有游标功能的 MCP 服务器能够提供更好的性能优化和支持更大的数据集检索能力[^2]。 #### 实现细节 在实际应用中,开发人员可能还需要考虑以下几个方面: - **安全性**:确保所有通信都经过加密,并且只有授权用户才能发送命令。 - **错误处理机制**:设计合理的异常捕获逻辑以应对可能出现的各种情况。 - **日志记录**:保持详细的运行日志有助于后续排查问题。 #### 使用 Python 脚本启动 Cursor MCP Server 如果希望利用编程方式动态创建并管理此类服务器实例,则可参考如下Python脚本片段: ```python import subprocess def start_cursor_mcp_server(db_path): command = ['uvicorn', 'mcp_server_cursor_sqlite:app'] args = ['--db-path', db_path] process = subprocess.Popen(command + args, stdout=subprocess.PIPE) output, error = process.communicate() if error is not None: raise Exception(f"Failed to start cursor MCP server with error: {error}") return f"Started cursor MCP server successfully connected to database at path: {db_path}" ``` 该函数接受一个数据库文件的位置作为输入参数,并尝试调用相应的Uvicorn进程来加载MCP应用程序模块。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值