diff --git a/.gitignore b/.gitignore index 5a0c9a3..e62691a 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,6 @@ venv/ # Build artifacts *.log + +# Claude Code +.claude/ diff --git a/SKILL.md b/SKILL.md index 2e5202c..d31d357 100644 --- a/SKILL.md +++ b/SKILL.md @@ -43,6 +43,34 @@ bash auto_setup.sh --path unity # Force Unity Official MCP - `--force` / `-Force` — Remove existing config before re-adding - `--timeout ` / `-Timeout ` — Custom timeout (default: 720000) +### Verify Prerequisites + +Before running setup (or when troubleshooting), use the verification scripts to +check that all required tools are installed and configured: + +**macOS / Linux:** + +```bash +bash verify_setup.sh +``` + +**Windows (PowerShell):** + +```powershell +.\verify_setup.ps1 +``` + +These scripts check: + +- **Claude Code** is installed and reachable +- **Git** is available (Windows only — required for Claude Code) +- **Python >= 3.11** is installed (required for Coplay MCP / Path B) +- **uvx** is installed (required for Coplay MCP / Path B) +- **Unity relay binary** exists at `~/.unity/relay` (required for Unity Official MCP / Path A) +- **Configured MCP servers** via `claude mcp list` + +Each check reports PASS, WARN, or FAIL with actionable install instructions. + ### Path A vs Path B | | Path A — Unity Official MCP | Path B — Coplay MCP | diff --git a/i18n/ja/README.md b/i18n/ja/README.md index c53e876..14d6f87 100644 --- a/i18n/ja/README.md +++ b/i18n/ja/README.md @@ -2,34 +2,51 @@ # unity-claude-code-skill -Unity Editor を MCP(Model Context Protocol)経由で Claude Code に接続するための **Claude Code カスタムスキル** です。 +Claude Code を Unity AI 開発アシスタントに変える **Claude Code カスタムスキル** です +— ワンクリック MCP セットアップ、自動診断、自然言語による直接的な +Unity Editor 操作をサポートします。 > **Claude Code スキルとは?** -> スキルとは、関連するタスクが発生した際に Claude Code が自動的に読み込む、ファイルシステムベースの指示セットです。`SKILL.md` ファイルと、オプションのスクリプトや参照資料を含むフォルダとして構成されます。詳細は +> スキルとは、関連するタスクが発生した際に Claude Code が自動的に読み込む、 +> ファイルシステムベースの指示セットです。`SKILL.md` ファイルと、オプションの +> スクリプトや参照資料を含むフォルダとして構成されます。詳細は > [Claude Code Custom Skills ドキュメント](https://code.claude.com/docs/en/skills) > をご覧ください。 ## このスキルの機能 -ユーザーが Claude Code と Unity の接続に関する質問をすると、このスキルが以下の手順をステップバイステップでガイドします: +| 機能 | 説明 | +|---------|-------------| +| **ワンクリックセットアップ** | 自動セットアップスクリプトが1つのコマンドで MCP を設定 | +| **自動診断** | 接続の問題を検出し、修正を提案 | +| **Unity 操作** | MCP ツールを使った Unity 制御のテンプレートとワークフロー | +| **ラピッドプロトタイピング** | 一般的なゲームタイプのステップバイステップワークフロー | +| **スクリプト生成** | PlayerController、GameManager、UI などの C# テンプレート | -- **Path A – Unity Official MCP**(`com.unity.ai.assistant`)— Unity 6+ 向け -- **Path B – Coplay MCP**(コミュニティ)— Unity 2022+ 向け +### サポートされる MCP パス -**Windows** と **macOS** の両方について、インストール、設定、接続の承認、動作確認、トラブルシューティングをカバーしています。 +- **Path A — Unity Official MCP**(`com.unity.ai.assistant`)— Unity 6+ 向け +- **Path B — Coplay MCP**(コミュニティ)— Unity 2022+ 向け ## リポジトリ構成 ```text unity-claude-code-skill/ -├── SKILL.md # コアスキル指示(Claude Code が自動読み込み) +├── SKILL.md # コアスキル: セットアップ + 操作 + ワークフロー ├── README.md # このファイル ├── LICENSE # MIT -├── scripts/ -│ ├── verify_setup.sh # macOS/Linux 前提条件チェッカー -│ └── verify_setup.ps1 # Windows 前提条件チェッカー -└── references/ - └── troubleshooting.md # よくある問題と解決策 +├── auto_setup.sh # ワンクリック MCP セットアップ (macOS/Linux) +├── auto_setup.ps1 # ワンクリック MCP セットアップ (Windows) +├── unity_operations.md # 詳細な MCP ツールリファレンス & コードテンプレート +├── verify_setup.sh # 前提条件チェッカー (macOS/Linux) +├── verify_setup.ps1 # 前提条件チェッカー (Windows) +├── troubleshooting.md # よくある問題と解決策 +├── .github/workflows/ci.yml # CI: マークダウンリント、shellcheck、リンクチェック +└── i18n/ # 翻訳 + ├── ko/ # 한국어 (Korean) + ├── ja/ # 日本語 (Japanese) + ├── zh-TW/ # 繁體中文 (Traditional Chinese) + └── zh-CN/ # 简体中文 (Simplified Chinese) ``` ## クイックインストール @@ -38,11 +55,11 @@ unity-claude-code-skill/ ```bash # ユーザーレベルのスキル(すべてのプロジェクトで利用可能) -git clone https://github.com//unity-claude-code-skill.git \ +git clone https://github.com/ryan-focus/unity-claude-code-skill.git \ ~/.claude/skills/unity-claude-code-setup # またはプロジェクトレベルのスキル(このプロジェクトのみで利用可能) -git clone https://github.com//unity-claude-code-skill.git \ +git clone https://github.com/ryan-focus/unity-claude-code-skill.git \ .claude/skills/unity-claude-code-setup ``` @@ -53,35 +70,65 @@ git clone https://github.com//unity-claude-code-skill.git \ ```bash mkdir -p ~/.claude/skills/unity-claude-code-setup curl -o ~/.claude/skills/unity-claude-code-setup/SKILL.md \ - https://raw.githubusercontent.com//unity-claude-code-skill/main/SKILL.md + https://raw.githubusercontent.com/ryan-focus/unity-claude-code-skill/main/SKILL.md ``` +## ワンクリック MCP セットアップ + +スキルのインストール後、自動セットアップスクリプトを実行して MCP +接続を設定します: + +**macOS / Linux:** + +```bash +cd ~/.claude/skills/unity-claude-code-setup +bash auto_setup.sh --auto # 最適なパスを自動検出 +bash auto_setup.sh --path coplay # Coplay MCP を強制指定 +bash auto_setup.sh --path unity # Unity Official MCP を強制指定 +``` + +**Windows (PowerShell):** + +```powershell +cd "$env:USERPROFILE\.claude\skills\unity-claude-code-setup" +.\auto_setup.ps1 -Auto # 最適なパスを自動検出 +.\auto_setup.ps1 -Path coplay # Coplay MCP を強制指定 +.\auto_setup.ps1 -Path unity # Unity Official MCP を強制指定 +``` + +**オプション:** + +- `--force` / `-Force` — 既存の MCP 設定を削除してから再追加 +- `--timeout ` / `-Timeout ` — カスタムタイムアウト(デフォルト: 720000ms) +- `--coplay-version ` / `-CoplayVersion ` — Coplay サーバーバージョン + ## 使い方 -インストール後は、Claude Code に自然に話しかけるだけです: +インストールして接続が完了したら、Claude Code に自然に話しかけるだけです: + +**セットアップ:** - *「Claude Code と Unity の連携を設定して」* - *「Unity プロジェクトを MCP 経由で Claude Code に接続したい」* -- *「Unity 用の Coplay MCP をインストールするには?」* -- *「Windows で Unity MCP をセットアップして」* - -Claude Code がこのスキルを自動的に読み込み、手順を案内します。 -### 検証スクリプトの実行 +**操作:** -セットアップ後、すべてが正しく配置されているか確認できます: +- *「GameLevel という新しいシーンを作って」* +- *「位置 (0, 2, 0) に赤いキューブを追加して」* +- *「WASD 移動の PlayerController スクリプトを作成して」* +- *「標準的なプロジェクトフォルダ構成をセットアップして」* +- *「Unity コンソールのエラーを確認して」* -**macOS/Linux:** +**ラピッドプロトタイピング:** -```bash -bash ~/.claude/skills/unity-claude-code-setup/scripts/verify_setup.sh -``` +- *「ボール転がしゲームのプロトタイプを作って」* +- *「基本的な 2D プラットフォーマーを作って」* +- *「メインメニュー UI システムを構築して」* -**Windows (PowerShell):** +**診断:** -```powershell -. "$env:USERPROFILE\.claude\skills\unity-claude-code-setup\scripts\verify_setup.ps1" -``` +- *「MCP 接続がうまくいかない、修正して」* +- *「Unity のセットアップを診断して」* ## 前提条件 @@ -90,7 +137,7 @@ bash ~/.claude/skills/unity-claude-code-setup/scripts/verify_setup.sh | Claude Code | 両方のパス | `curl -fsSL https://claude.ai/install.sh \| bash`(macOS/Linux)または `irm https://claude.ai/install.ps1 \| iex`(Windows) | | Unity 6+ | Path A | [unity.com](https://unity.com/download) | | Unity 2022+ | Path B | [unity.com](https://unity.com/download) | -| Python ≥ 3.11 | Path B のみ | [python.org](https://www.python.org/downloads/) | +| Python >= 3.11 | Path B のみ | [python.org](https://www.python.org/downloads/) | | Git for Windows | Windows のみ | [git-scm.com](https://git-scm.com/download/win) | ## 主要リソース @@ -102,7 +149,9 @@ bash ~/.claude/skills/unity-claude-code-setup/scripts/verify_setup.sh ## コントリビューション -プルリクエスト歓迎です! 手順が古くなっている箇所を見つけたり、Linux や他の MCP クライアント(Cursor、Windsurf など)のサポートを追加したい場合は、Issue を作成するかプルリクエストを送ってください。 +プルリクエスト歓迎です!手順が古くなっている箇所を見つけたり、Linux や +他の MCP クライアント(Cursor、Windsurf など)のサポートを追加したい場合は、 +Issue を作成するかプルリクエストを送ってください。 ## ライセンス diff --git a/i18n/ja/SKILL.md b/i18n/ja/SKILL.md index 2b8a5a9..e7922ba 100644 --- a/i18n/ja/SKILL.md +++ b/i18n/ja/SKILL.md @@ -1,211 +1,367 @@ --- -name: unity-claude-code-setup +name: unity-claude-code-assistant description: > - Claude Code のインストール、MCP(Model Context Protocol)経由での Unity Editor への接続、 - および統合の動作確認までをステップバイステップでガイドします。Unity Official MCP - (com.unity.ai.assistant)とコミュニティの Coplay MCP の両方をカバーしています。 - Windows と macOS に対応しています。このスキルは、ユーザーが Claude Code と Unity の - セットアップ、AI アシスタントと Unity Editor の接続、Unity MCP のインストール、 - Coplay MCP のセットアップ、または自然言語を使って Claude Code 経由で Unity のシーン、 - GameObject、アセット、スクリプトを操作したいと言及した場合にご利用ください。 - また、AI 支援による Unity 開発の前提条件、Claude Code + Unity 接続のトラブル - シューティング、Unity MCP と Coplay MCP の比較についてユーザーが質問した場合にも - トリガーされます。 + Complete Unity AI development assistant. Covers one-click MCP setup, + auto-diagnosis, and hands-on Unity operations via MCP tools. + Trigger this skill when the user mentions: Unity + Claude Code setup, + connecting AI to Unity Editor, Unity MCP installation, Coplay MCP, + controlling Unity scenes/GameObjects/assets/scripts through Claude Code, + AI-assisted Unity development, building Unity games with AI, + creating Unity scenes or projects with natural language, + or troubleshooting Claude Code + Unity connections. --- -# Unity + Claude Code + MCP セットアップガイド +# Unity + Claude Code — AI 開発アシスタント -このスキルは、Claude Code を MCP 経由で Unity Editor に接続し、自然言語でシーン、アセット、スクリプトなどを操作できるようにする手順を案内します。 - -**2つのメインパス** があります。ユーザーの状況に合ったものを選んでください: - -| パス | 使用する場合 | -|------|-------------| -| **Path A – Unity Official MCP** | Unity 6+ で `com.unity.ai.assistant` パッケージを使用。Unity 公式サポート。 | -| **Path B – Coplay MCP(コミュニティ)** | Unity 2022+。より多くのツール、迅速なイテレーション、コミュニティ主導。 | - -ユーザーが迷っている場合は、使用している Unity のバージョンを確認してください。Unity 6+ ユーザーはどちらのパスも使用可能です。Unity 2022〜2023 ユーザーは Path B を使用してください。 +あなたは MCP 経由で Unity Editor に接続された Unity 開発アシスタントです。 +このスキルは**セットアップ**、**自動診断**、**直接的な Unity 操作**をカバーします。 --- -## 共通の前提条件 - -どちらのパスでも、以下が準備されていることを確認してください: +## 1. クイックセットアップ(ワンクリック) -### 1. Claude Code のインストール - -Claude Code には有料の Anthropic プラン(Pro、Max、Team、または Enterprise)が必要です。 +MCP 接続がまだ設定されていない場合、自動セットアップスクリプトを使用してください: **macOS / Linux:** ```bash -curl -fsSL https://claude.ai/install.sh | bash +bash auto_setup.sh --auto # 最適なパスを自動検出 +bash auto_setup.sh --path coplay # Coplay MCP を強制指定 +bash auto_setup.sh --path unity # Unity Official MCP を強制指定 ``` **Windows (PowerShell):** ```powershell -irm https://claude.ai/install.ps1 | iex +.\auto_setup.ps1 -Auto # 最適なパスを自動検出 +.\auto_setup.ps1 -Path coplay # Coplay MCP を強制指定 +.\auto_setup.ps1 -Path unity # Unity Official MCP を強制指定 ``` -> Windows では **Git for Windows** のインストールも必要です。 +**オプション:** -**確認:** +- `--force` / `-Force` — 既存の設定を削除してから再追加 +- `--timeout ` / `-Timeout ` — カスタムタイムアウト(デフォルト: 720000) -```bash -claude --version -``` +### Path A vs Path B -初回起動後、`claude` を実行してブラウザのプロンプトに従い認証を行ってください。 +| | Path A — Unity Official MCP | Path B — Coplay MCP | +|---|---|---| +| パッケージ | `com.unity.ai.assistant` | `coplay-mcp-server` | +| Unity | 6+ | 2022+ | +| ツール | 少ないが公式サポート | より多くのツール、コミュニティ主導 | +| セットアップ | Relay バイナリ + 接続承認 | Python 3.11 + uvx | -### 2. Unity のインストール確認 - -- Path A には **Unity 6(6000.0)** 以降が必要です。 -- Path B には **Unity 2022** 以降が必要です。 +ユーザーが迷っている場合は、Unity バージョンを確認してください。Unity 6+ → どちらのパスも可。Unity 2022–2023 → Path B。 --- -## Path A – Unity Official MCP +## 2. 手動セットアップ -### A1. AI Assistant パッケージのインストール +自動セットアップスクリプトが失敗した場合にのみ使用してください。 -Unity で **Window > Package Manager** を開き、**+** をクリックして **Add package by name** を選択し、以下を入力します: +### 共通の前提条件 -```text -com.unity.ai.assistant -``` +1. **Claude Code** — 有料の Anthropic プランが必要 -### A2. Unity Bridge の起動 + ```bash + # macOS/Linux + curl -fsSL https://claude.ai/install.sh | bash + # Windows + irm https://claude.ai/install.ps1 | iex + ``` + +2. **Unity** — Path A は Unity 6+ が必要、Path B は Unity 2022+ が必要 -1. **Edit > Project Settings > AI > Unity MCP** に移動します。 -2. **Unity Bridge** のステータスが **Running**(緑色)であることを確認します。 -3. **Stopped** と表示されている場合は、**Start** をクリックします。 +### Path A — Unity Official MCP -relay binary は `~/.unity/relay/` に自動的にインストールされます。 +1. Package Manager から `com.unity.ai.assistant` をインストール +2. Edit > Project Settings > AI > Unity MCP → Bridge が **Running** であることを確認 +3. Claude Code を設定: -### A3. Claude Code の設定 + ```bash + claude mcp add unity-mcp -- --mcp + ``` -**オプション 1 – 自動設定(推奨):** -Unity の **Project Settings > AI > Unity MCP > Integrations** で **Claude Code** を見つけて **Configure** をクリックします。 + | プラットフォーム | Relay パス | + |----------|-----------| + | macOS ARM | `~/.unity/relay/relay_mac_arm64.app/Contents/MacOS/relay_mac_arm64` | + | macOS Intel | `~/.unity/relay/relay_mac_x64.app/Contents/MacOS/relay_mac_x64` | + | Windows | `%USERPROFILE%\.unity\relay\relay_win.exe` | -**オプション 2 – 手動設定:** +4. Unity で:保留中の接続を承認 -ターミナルで以下を実行します: +### Path B — Coplay MCP + +1. Python >= 3.11 をインストール +2. Unity で:git URL からパッケージを追加 `https://github.com/CoplayDev/unity-plugin.git#beta` +3. Claude Code を設定: + + ```bash + claude mcp add --scope user --transport stdio coplay-mcp \ + --env MCP_TOOL_TIMEOUT=720000 \ + -- uvx --python ">=3.11" coplay-mcp-server@1.5.5 + ``` + +--- + +## 3. 自動診断 + +ユーザーが接続の問題を報告したり、何かがうまくいかない場合、 +次の診断手順に従ってください: + +### ステップ 1 — MCP 設定の確認 ```bash -claude mcp add unity-mcp -- --mcp +claude mcp list ``` -`` をお使いのプラットフォームに応じた正しいパスに置き換えてください: +対象の MCP サーバー(unity-mcp または coplay-mcp)がリストにあることを確認します。 -| プラットフォーム | relay パス | -|----------|-----------| -| macOS (Apple Silicon) | `~/.unity/relay/relay_mac_arm64.app/Contents/MacOS/relay_mac_arm64` | -| macOS (Intel) | `~/.unity/relay/relay_mac_x64.app/Contents/MacOS/relay_mac_x64` | -| Windows | `%USERPROFILE%\.unity\relay\relay_win.exe` | +### ステップ 2 — MCP 接続のテスト -### A4. 接続の承認 +シンプルなツール呼び出しを試します: -1. Unity に戻り:**Edit > Project Settings > AI > Unity MCP** を開きます。 -2. **Pending Connections** の項目を確認し、**Accept** をクリックします。 +- **Coplay:** `list_editors` — 開いている Unity インスタンスを返すはず +- **Unity Official:** `Unity_ReadConsole` — コンソールメッセージを返すはず -以前承認したクライアントは自動的に再接続されます。 +### ステップ 3 — よくある障害パターン -### A5. テスト +| 症状 | 考えられる原因 | 解決策 | +|---------|-------------|-----| +| MCP がリストにない | 設定されていない | `auto_setup.sh --auto` を実行 | +| 「connecting」のまま | サーバーが起動していない | Claude Code を再起動; Unity が開いていることを確認 | +| 接続拒否 | Unity Bridge が停止 | Project Settings > AI > Unity MCP > Start | +| タイムアウトエラー | 操作が遅すぎる | `MCP_TOOL_TIMEOUT` を 1800000 に増加 | +| "python not found" | Python < 3.11 またはインストールされていない | Python >= 3.11 をインストール | +| "uvx not found" | uv がインストールされていない | `pip install uv` | +| ツール呼び出し失敗 | 間違ったツール名 | `list available MCP tools` を実行して正確な名前を確認 | +| macOS PATH の問題 | Finder から Unity を起動 | ターミナルから Unity Hub を起動: `open -a "Unity Hub"` | -Claude Code で以下を試してみてください: +### ステップ 4 — 完全リセット -```text -Read the Unity console messages and summarize any warnings or errors. +何をしてもうまくいかない場合、削除して再追加: + +```bash +claude mcp remove coplay-mcp # または unity-mcp +bash auto_setup.sh --path coplay --force ``` -Claude が `Unity_ReadConsole` を呼び出せれば、セットアップは完了です。 +追加の詳細は `troubleshooting.md` を参照してください。 --- -## Path B – Coplay MCP(コミュニティ) +## 4. Unity 操作 — MCP ツールの使い方 -### B1. Python 3.11+ のインストール +MCP 接続がアクティブな場合、Unity を直接制御できます。 +完全なツールリファレンスとコードテンプレートは `unity_operations.md` を参照してください。 -Coplay の MCP サーバーには Python 3.11 以上が必要です。 +### 主要な原則 -**確認:** +1. **まずツールを確認する。** 各セッションの開始時に、利用可能な MCP + ツールをリストして、どの操作がサポートされているかを把握します。 +2. **複雑な作業には run_code / ExecuteCode を使用する。** 専用ツールが + 存在しない場合、C# コードを書いてエディタで直接実行します。 +3. **各アクション後に確認する。** オブジェクトの作成や変更後、 + コンソールとヒエラルキーをチェックします。 +4. **操作をバッチ処理する。** 複数のオブジェクトの場合、ツールを繰り返し + 呼び出す代わりに、1つの C# スクリプトを書きます。 -```bash -python3 --version # macOS/Linux -python --version # Windows +### シーン管理 + +**新しいシーンを作成:** + +```text +1. execute_menu_item("File/New Scene") +2. run_code で保存: + EditorSceneManager.SaveScene( + SceneManager.GetActiveScene(), "Assets/Scenes/.unity"); ``` -インストールされていない場合: +**シーンの内容を取得:** -- macOS: `brew install python@3.11` -- Windows: からダウンロード +```text +get_scene_hierarchy → 完全なオブジェクトツリーを返す +``` -### B2. Coplay Unity パッケージのインストール +**シーンを保存:** -1. Unity プロジェクトを開きます。 -2. **Window > Package Manager > + > Add package from git URL** を選択します。 -3. 以下を入力します: +```text +execute_menu_item("File/Save") +``` - ```text - https://github.com/CoplayDev/unity-plugin.git#beta - ``` +### GameObject 操作 + +**プリミティブを作成(Cube, Sphere, Capsule, Plane, Cylinder):** -4. Coplay が有効になり、Editor で実行されていることを確認します。 +```text +create_primitive("Cube", name="MyCube") +set_component_property("MyCube", "Transform", "position", {x:0, y:1, z:0}) +``` -### B3. Claude Code に Coplay MCP を追加 +**ヒエラルキーを作成:** -```bash -claude mcp add \ - --scope user \ - --transport stdio \ - coplay-mcp \ - --env MCP_TOOL_TIMEOUT=720000 \ - -- uvx --python ">=3.11" coplay-mcp-server@1.5.5 +```text +1. 親を作成: create_gameobject("Player") +2. 子を作成して Player の下に配置 +3. 各子の Transform を設定 ``` -> Windows では PowerShell で実行してください。`uvx` が見つからない場合は、先に -> `pip install uv` でインストールしてください。 +**コンポーネントを追加:** -### B4. 確認 +```text +add_component("Player", "Rigidbody") +add_component("Player", "CharacterController") +set_component_property("Player", "Rigidbody", "mass", 2.0) +``` -```bash -claude mcp list +### スクリプト開発 + +ユーザーがスクリプトの作成を要求した場合、完全な C# ファイルを生成し、 +`create_script` または `run_code` を使用してプロジェクトに書き込みます: + +```csharp +// Assets/Scripts/ にスクリプトファイルを書き込み +run_code(@" + System.IO.Directory.CreateDirectory(""Assets/Scripts""); + System.IO.File.WriteAllText(""Assets/Scripts/PlayerController.cs"", @"" +using UnityEngine; +public class PlayerController : MonoBehaviour { + [SerializeField] float speed = 5f; + void Update() { + float h = Input.GetAxis(""Horizontal""); + float v = Input.GetAxis(""Vertical""); + transform.Translate(new Vector3(h, 0, v) * speed * Time.deltaTime); + } +} +""); + AssetDatabase.Refresh(); +"); ``` -一覧に `coplay-mcp` が表示されるはずです。 +一般的なスクリプトパターン(完全なテンプレートは `unity_operations.md` を参照): -### B5. テスト +- **PlayerController** — CharacterController を使った WASD 移動 +- **GameManager** — DontDestroyOnLoad のシングルトンパターン +- **HealthBarUI** — カラーグラデーション付きスライダーベースの UI +- **CameraFollow** — オフセット付きスムーズ追従 +- **SceneLoader** — ローディング画面付き非同期シーン遷移 -Unity プロジェクトを開いた状態で、Claude Code で以下を試してください: +### マテリアルとビジュアル -```text -List all open Unity editors +```csharp +// 色付きマテリアルを作成して割り当て +run_code(@" + var obj = GameObject.Find(""MyCube""); + var mat = new Material(Shader.Find(""Standard"")); + mat.color = Color.red; + obj.GetComponent().material = mat; +"); ``` -次に以下を試してください: +### アセット構成 + +プロフェッショナルなプロジェクト構成をセットアップ: + +```csharp +run_code(@" + string[] folders = { + ""Assets/Scripts"", ""Assets/Scenes"", ""Assets/Prefabs"", + ""Assets/Materials"", ""Assets/Textures"", ""Assets/Audio"", + ""Assets/Animations"", ""Assets/Fonts"", ""Assets/Resources"" + }; + foreach (var f in folders) { + var parts = f.Split('/'); + var parent = parts[0]; + for (int i = 1; i < parts.Length; i++) { + var next = parent + ""/"" + parts[i]; + if (!AssetDatabase.IsValidFolder(next)) + AssetDatabase.CreateFolder(parent, parts[i]); + parent = next; + } + } + AssetDatabase.Refresh(); +"); +``` + +### デバッグ + +**コンソールメッセージを読む:** ```text -Create a red cube at position (0, 1, 0) in the current Unity scene +get_console_logs または Unity_ReadConsole +→ エラーと警告を要約し、修正を提案 ``` ---- +**不足しているスクリプトを見つける:** -## トラブルシューティング +```csharp +run_code(@" + foreach (var go in Resources.FindObjectsOfTypeAll()) { + foreach (var c in go.GetComponents()) { + if (c == null) Debug.LogWarning($""Missing script on: {go.name}""); + } + } +"); +``` -よくある問題については `references/troubleshooting.md` を参照してください。以下の内容が含まれています: +--- -- `claude` コマンドが見つからない -- MCP サーバーが「connecting」のまま停止する -- Unity が MCP クライアントを検出しない -- Finder から起動した場合の macOS PATH の問題 -- 大規模な操作でのタイムアウトエラー -- Windows 固有の PowerShell の問題 +## 5. ラピッドプロトタイプワークフロー + +ユーザーが素早く何かを作りたい場合、以下の構造化されたワークフローに従ってください。 + +### 3D ボール転がしゲーム + +1. シーン "GameLevel" を作成 +2. 床を作成(Plane、スケール 5x5) +3. プレイヤーを作成(Sphere + Rigidbody、y=0.5) +4. BallController.cs を作成 — 力ベースの WASD 移動 +5. 収集アイテムを作成(トリガーコライダー付きの小さなキューブ) +6. Collectible.cs を作成 — OnTriggerEnter → 破棄 + スコア追加 +7. ScoreManager.cs シングルトンを作成 +8. スコアテキスト付き UI Canvas を作成 +9. スムーズ追従用の CameraFollow.cs を追加 +10. ライティングとスカイボックスをセットアップ + +### 2D プラットフォーマー + +1. 2D シーンを作成 +2. 地面スプライト / タイルマップを作成 +3. プレイヤーを作成(スプライト + Rigidbody2D + BoxCollider2D) +4. PlatformController2D.cs を作成 — 移動 + ジャンプ + 地面チェック +5. さまざまな高さにプラットフォームを作成 +6. CameraFollow2D.cs を追加 +7. プラットフォームの下にデスゾーンを追加 +8. スコア/ライフ UI を追加 + +### FPS プロトタイプ + +1. 地形または床のあるシーンを作成 +2. プレイヤーを作成(Capsule + CharacterController + 子として Camera) +3. FPSController.cs を作成 — WASD + マウスルック +4. シンプルな障害物を作成(壁、木箱) +5. 射撃メカニクスを追加(レイキャストまたはプロジェクタイル) +6. 体力を持つ敵ターゲットを追加 +7. クロスヘア UI と弾薬カウンターを追加 + +### UI メニューシステム + +1. Canvas を作成(Screen Space - Overlay) +2. タイトルテキストを作成(TextMeshPro) +3. ボタンを作成:Start、Settings、Quit +4. ボタンハンドラー用の MainMenuController.cs を作成 +5. ボリュームスライダー付き設定パネルを作成 +6. シーン遷移ロジックを作成 --- -## セットアップ後のヒント +## 6. セットアップ後のヒント -- Unity プロジェクトのルートで `claude /init` を実行し、プロジェクトの規約を Claude Code に伝える `CLAUDE.md` を生成してください。 -- Claude Code で `@` シンボルを使って特定のファイルを参照できます。例:`@PlayerController.cs` -- Coplay MCP で長時間の操作によるタイムアウトエラーが発生する場合は、`MCP_TOOL_TIMEOUT` の値を増やしてください(デフォルトは 720000ms = 12分)。 +- Unity プロジェクトのルートで `claude /init` を実行して、プロジェクトの規約を + 記述する `CLAUDE.md` を生成してください。 +- Claude Code で `@` を使ってファイルを参照: `@PlayerController.cs` +- 大規模な操作では `MCP_TOOL_TIMEOUT` を増やしてください(デフォルト 12 分)。 +- シーンを頻繁に保存 — `execute_menu_item("File/Save")` で実行。 +- 専用の MCP ツールがない操作には、`run_code` / `ExecuteCode` を + 万能ツールとして使用してください。 diff --git a/i18n/ko/README.md b/i18n/ko/README.md index 2042ac6..990d2cb 100644 --- a/i18n/ko/README.md +++ b/i18n/ko/README.md @@ -2,36 +2,51 @@ # unity-claude-code-skill -Unity Editor를 MCP(Model Context Protocol)를 통해 Claude Code와 연동하는 과정을 안내하는 **Claude Code 커스텀 Skill**입니다. +Claude Code를 Unity AI 개발 어시스턴트로 변환하는 **Claude Code 커스텀 Skill**입니다 +— 원클릭 MCP 설정, 자동 진단, 자연어를 통한 직접적인 +Unity Editor 조작을 지원합니다. -> **Claude Code Skill이란?** +> **Claude Code Skill이란?** > Skill은 파일 시스템 기반의 명령어 집합으로, Claude Code가 관련 상황에서 > 자동으로 불러옵니다. `SKILL.md` 파일과 선택적 스크립트/참조 자료가 포함된 > 폴더에 위치합니다. 자세한 내용은 -> [Claude Code 커스텀 Skill 문서](https://code.claude.com/docs/en/skills)를 +> [Claude Code Custom Skills 문서](https://code.claude.com/docs/en/skills)를 > 참고하세요. ## 이 Skill이 하는 일 -사용자가 Claude Code와 Unity 연동에 관해 질문하면, 이 Skill이 다음 두 가지 경로에 대한 단계별 가이드를 제공합니다: +| 기능 | 설명 | +|---------|-------------| +| **원클릭 설정** | 자동 설정 스크립트가 단일 명령으로 MCP를 구성 | +| **자동 진단** | 연결 문제를 감지하고 해결 방법 제안 | +| **Unity 조작** | MCP 도구를 통한 Unity 제어 템플릿 및 워크플로우 | +| **빠른 프로토타이핑** | 일반적인 게임 유형을 위한 단계별 워크플로우 | +| **스크립트 생성** | PlayerController, GameManager, UI 등의 C# 템플릿 | -- **경로 A – Unity 공식 MCP** (`com.unity.ai.assistant`) — Unity 6 이상용 -- **경로 B – Coplay MCP** (커뮤니티) — Unity 2022 이상용 +### 지원하는 MCP 경로 -Windows와 macOS 모두에서 설치, 구성, 연결 승인, 검증 및 문제 해결을 다룹니다. +- **경로 A — Unity 공식 MCP** (`com.unity.ai.assistant`) — Unity 6+ 용 +- **경로 B — Coplay MCP** (커뮤니티) — Unity 2022+ 용 ## 저장소 구조 ```text unity-claude-code-skill/ -├── SKILL.md # 핵심 Skill 명령어 (Claude Code가 자동으로 로드) +├── SKILL.md # 핵심 Skill: 설정 + 조작 + 워크플로우 ├── README.md # 이 파일 ├── LICENSE # MIT -├── scripts/ -│ ├── verify_setup.sh # macOS/Linux 사전 요구사항 검사기 -│ └── verify_setup.ps1 # Windows 사전 요구사항 검사기 -└── references/ - └── troubleshooting.md # 일반적인 문제 및 해결 방법 +├── auto_setup.sh # 원클릭 MCP 설정 (macOS/Linux) +├── auto_setup.ps1 # 원클릭 MCP 설정 (Windows) +├── unity_operations.md # 상세 MCP 도구 레퍼런스 & 코드 템플릿 +├── verify_setup.sh # 사전 요구사항 검사기 (macOS/Linux) +├── verify_setup.ps1 # 사전 요구사항 검사기 (Windows) +├── troubleshooting.md # 일반적인 문제 & 해결 방법 +├── .github/workflows/ci.yml # CI: 마크다운 린트, shellcheck, 링크 검사 +└── i18n/ # 번역 + ├── ko/ # 한국어 (Korean) + ├── ja/ # 日本語 (Japanese) + ├── zh-TW/ # 繁體中文 (Traditional Chinese) + └── zh-CN/ # 简体中文 (Simplified Chinese) ``` ## 빠른 설치 @@ -40,11 +55,11 @@ unity-claude-code-skill/ ```bash # 사용자 레벨 Skill (모든 프로젝트에서 사용 가능) -git clone https://github.com//unity-claude-code-skill.git \ +git clone https://github.com/ryan-focus/unity-claude-code-skill.git \ ~/.claude/skills/unity-claude-code-setup # 또는 프로젝트 레벨 Skill (현재 프로젝트에서만 사용 가능) -git clone https://github.com//unity-claude-code-skill.git \ +git clone https://github.com/ryan-focus/unity-claude-code-skill.git \ .claude/skills/unity-claude-code-setup ``` @@ -55,44 +70,73 @@ git clone https://github.com//unity-claude-code-skill.git \ ```bash mkdir -p ~/.claude/skills/unity-claude-code-setup curl -o ~/.claude/skills/unity-claude-code-setup/SKILL.md \ - https://raw.githubusercontent.com//unity-claude-code-skill/main/SKILL.md + https://raw.githubusercontent.com/ryan-focus/unity-claude-code-skill/main/SKILL.md ``` +## 원클릭 MCP 설정 + +Skill 설치 후, 자동 설정 스크립트를 실행하여 MCP 연결을 구성하세요: + +**macOS / Linux:** + +```bash +cd ~/.claude/skills/unity-claude-code-setup +bash auto_setup.sh --auto # 최적 경로 자동 감지 +bash auto_setup.sh --path coplay # Coplay MCP 강제 지정 +bash auto_setup.sh --path unity # Unity 공식 MCP 강제 지정 +``` + +**Windows (PowerShell):** + +```powershell +cd "$env:USERPROFILE\.claude\skills\unity-claude-code-setup" +.\auto_setup.ps1 -Auto # 최적 경로 자동 감지 +.\auto_setup.ps1 -Path coplay # Coplay MCP 강제 지정 +.\auto_setup.ps1 -Path unity # Unity 공식 MCP 강제 지정 +``` + +**옵션:** + +- `--force` / `-Force` — 기존 MCP 설정을 제거한 후 다시 추가 +- `--timeout ` / `-Timeout ` — 커스텀 타임아웃 (기본값: 720000ms) +- `--coplay-version ` / `-CoplayVersion ` — Coplay 서버 버전 + ## 사용법 -설치가 완료되면 Claude Code에 자연스럽게 말하면 됩니다: +설치 및 연결이 완료되면, Claude Code에 자연스럽게 말하면 됩니다: + +**설정:** - *"Claude Code와 Unity 연동을 도와줘"* - *"내 Unity 프로젝트를 MCP를 통해 Claude Code에 연결하고 싶어"* -- *"Unity용 Coplay MCP는 어떻게 설치해?"* -- *"Windows에서 Unity MCP 설정해줘"* - -Claude Code가 자동으로 이 Skill을 로드하여 전체 과정을 안내합니다. -### 검증 스크립트 실행 +**조작:** -설정 후 모든 것이 올바르게 구성되었는지 확인할 수 있습니다: +- *"GameLevel이라는 새 씬을 만들어줘"* +- *"위치 (0, 2, 0)에 빨간 큐브를 추가해줘"* +- *"WASD 이동이 가능한 PlayerController 스크립트를 만들어줘"* +- *"표준 프로젝트 폴더 구조를 설정해줘"* +- *"Unity 콘솔에서 오류를 확인해줘"* -**macOS/Linux:** +**빠른 프로토타이핑:** -```bash -bash ~/.claude/skills/unity-claude-code-setup/scripts/verify_setup.sh -``` +- *"공 굴리기 게임 프로토타입을 만들어줘"* +- *"기본 2D 플랫포머를 만들어줘"* +- *"메인 메뉴 UI 시스템을 만들어줘"* -**Windows (PowerShell):** +**진단:** -```powershell -. "$env:USERPROFILE\.claude\skills\unity-claude-code-setup\scripts\verify_setup.ps1" -``` +- *"MCP 연결이 안 돼, 수리 좀 해줘"* +- *"Unity 설정에 대해 진단을 실행해줘"* ## 사전 요구사항 | 도구 | 필요한 경로 | 설치 방법 | -|------|------------|----------| +|------|-------------|---------| | Claude Code | 두 경로 모두 | `curl -fsSL https://claude.ai/install.sh \| bash` (macOS/Linux) 또는 `irm https://claude.ai/install.ps1 \| iex` (Windows) | | Unity 6+ | 경로 A | [unity.com](https://unity.com/download) | | Unity 2022+ | 경로 B | [unity.com](https://unity.com/download) | -| Python ≥ 3.11 | 경로 B만 | [python.org](https://www.python.org/downloads/) | +| Python >= 3.11 | 경로 B만 | [python.org](https://www.python.org/downloads/) | | Git for Windows | Windows만 | [git-scm.com](https://git-scm.com/download/win) | ## 주요 참고 자료 @@ -104,7 +148,9 @@ bash ~/.claude/skills/unity-claude-code-setup/scripts/verify_setup.sh ## 기여하기 -PR을 환영합니다! 오래된 단계를 발견하거나 Linux 또는 다른 MCP 클라이언트(Cursor, Windsurf 등) 지원을 추가하고 싶다면, 이슈를 등록하거나 풀 리퀘스트를 제출해 주세요. +PR을 환영합니다! 오래된 단계를 발견하거나 Linux 또는 다른 MCP 클라이언트 +(Cursor, Windsurf 등) 지원을 추가하고 싶다면, 이슈를 등록하거나 +풀 리퀘스트를 제출해 주세요. ## 라이선스 diff --git a/i18n/ko/SKILL.md b/i18n/ko/SKILL.md index ef72815..9a08039 100644 --- a/i18n/ko/SKILL.md +++ b/i18n/ko/SKILL.md @@ -1,213 +1,367 @@ --- -name: unity-claude-code-setup +name: unity-claude-code-assistant description: > - Step-by-step guide to install Claude Code, connect it to Unity Editor via MCP - (Model Context Protocol), and verify the integration works. Covers both the - Unity official MCP (com.unity.ai.assistant) and the community Coplay MCP. - Supports Windows and macOS. Use this skill whenever the user mentions setting - up Claude Code with Unity, connecting an AI assistant to Unity Editor, - Unity MCP installation, Coplay MCP setup, or wants to use natural-language - commands to control Unity scenes, GameObjects, assets, or scripts through - Claude Code. Also trigger when the user asks about prerequisites for - AI-assisted Unity development, troubleshooting Claude Code + Unity connections, - or comparing Unity MCP vs Coplay MCP. + Complete Unity AI development assistant. Covers one-click MCP setup, + auto-diagnosis, and hands-on Unity operations via MCP tools. + Trigger this skill when the user mentions: Unity + Claude Code setup, + connecting AI to Unity Editor, Unity MCP installation, Coplay MCP, + controlling Unity scenes/GameObjects/assets/scripts through Claude Code, + AI-assisted Unity development, building Unity games with AI, + creating Unity scenes or projects with natural language, + or troubleshooting Claude Code + Unity connections. --- -# Unity + Claude Code + MCP 설정 가이드 +# Unity + Claude Code — AI 개발 어시스턴트 -이 Skill은 Claude Code를 MCP를 통해 Unity Editor에 연결하여 자연어로 씬, 에셋, 스크립트 등을 제어할 수 있도록 안내합니다. - -**두 가지 주요 경로**가 있습니다. 사용자의 상황에 맞는 경로를 선택하세요: - -| 경로 | 사용 시기 | -|------|----------| -| **경로 A – Unity 공식 MCP** | Unity 6 이상, `com.unity.ai.assistant` 패키지 사용. Unity에서 공식 지원합니다. | -| **경로 B – Coplay MCP (커뮤니티)** | Unity 2022 이상. 더 많은 도구, 빠른 업데이트, 커뮤니티 주도 방식입니다. | - -사용자가 확신이 없는 경우, Unity 버전을 먼저 확인하세요. Unity 6 이상 사용자는 두 경로 모두 사용할 수 있으며, Unity 2022~2023 사용자는 경로 B를 사용해야 합니다. +당신은 MCP를 통해 Unity Editor에 연결된 Unity 개발 어시스턴트입니다. +이 스킬은 **설정**, **자동 진단**, 그리고 **직접적인 Unity 조작**을 다룹니다. --- -## 공통 사전 요구사항 - -어느 경로든 시작하기 전에 다음 사항을 확인하세요: +## 1. 빠른 설정 (원클릭) -### 1. Claude Code 설치 - -Claude Code는 유료 Anthropic 플랜(Pro, Max, Team 또는 Enterprise)이 필요합니다. +MCP 연결이 아직 구성되지 않은 경우, 자동 설정 스크립트를 사용하세요: **macOS / Linux:** ```bash -curl -fsSL https://claude.ai/install.sh | bash +bash auto_setup.sh --auto # 최적 경로 자동 감지 +bash auto_setup.sh --path coplay # Coplay MCP 강제 지정 +bash auto_setup.sh --path unity # Unity 공식 MCP 강제 지정 ``` **Windows (PowerShell):** ```powershell -irm https://claude.ai/install.ps1 | iex +.\auto_setup.ps1 -Auto # 최적 경로 자동 감지 +.\auto_setup.ps1 -Path coplay # Coplay MCP 강제 지정 +.\auto_setup.ps1 -Path unity # Unity 공식 MCP 강제 지정 ``` -> Windows에서는 **Git for Windows**도 설치되어 있어야 합니다. +**옵션:** -**확인:** +- `--force` / `-Force` — 기존 설정을 제거한 후 다시 추가 +- `--timeout ` / `-Timeout ` — 커스텀 타임아웃 (기본값: 720000) -```bash -claude --version -``` +### 경로 A vs 경로 B -최초 실행 시 `claude`를 실행하고 브라우저 안내에 따라 인증을 완료하세요. +| | 경로 A — Unity 공식 MCP | 경로 B — Coplay MCP | +|---|---|---| +| 패키지 | `com.unity.ai.assistant` | `coplay-mcp-server` | +| Unity | 6+ | 2022+ | +| 도구 | 적지만 공식 지원 | 더 많은 도구, 커뮤니티 주도 | +| 설정 | Relay 바이너리 + 연결 승인 | Python 3.11 + uvx | -### 2. Unity 설치 확인 - -- 경로 A는 **Unity 6 (6000.0)** 이상이 필요합니다. -- 경로 B는 **Unity 2022** 이상이 필요합니다. +사용자가 확신이 없는 경우, Unity 버전을 확인하세요. Unity 6+ → 두 경로 모두 가능. Unity 2022–2023 → 경로 B. --- -## 경로 A – Unity 공식 MCP +## 2. 수동 설정 -### A1. AI Assistant 패키지 설치 +자동 설정 스크립트가 실패한 경우에만 사용하세요. -Unity에서 **Window > Package Manager**로 이동하고, **+** 를 클릭한 후 -**Add package by name**을 선택하여 다음을 입력합니다: +### 공통 사전 요구사항 -```text -com.unity.ai.assistant -``` +1. **Claude Code** — 유료 Anthropic 플랜 필요 -### A2. Unity Bridge 시작 + ```bash + # macOS/Linux + curl -fsSL https://claude.ai/install.sh | bash + # Windows + irm https://claude.ai/install.ps1 | iex + ``` + +2. **Unity** — 경로 A는 Unity 6+ 필요, 경로 B는 Unity 2022+ 필요 -1. **Edit > Project Settings > AI > Unity MCP**로 이동합니다. -2. **Unity Bridge** 상태가 **Running**(녹색)으로 표시되는지 확인합니다. -3. **Stopped**로 표시되면 **Start**를 클릭합니다. +### 경로 A — Unity 공식 MCP -relay binary는 `~/.unity/relay/`에 자동으로 설치됩니다. +1. Package Manager에서 `com.unity.ai.assistant` 설치 +2. Edit > Project Settings > AI > Unity MCP → Bridge가 **Running** 상태인지 확인 +3. Claude Code 구성: -### A3. Claude Code 구성 + ```bash + claude mcp add unity-mcp -- --mcp + ``` -**옵션 1 – 자동 구성 (권장):** -Unity의 **Project Settings > AI > Unity MCP > Integrations**에서 -**Claude Code**를 찾아 **Configure**를 클릭합니다. + | 플랫폼 | Relay 경로 | + |----------|-----------| + | macOS ARM | `~/.unity/relay/relay_mac_arm64.app/Contents/MacOS/relay_mac_arm64` | + | macOS Intel | `~/.unity/relay/relay_mac_x64.app/Contents/MacOS/relay_mac_x64` | + | Windows | `%USERPROFILE%\.unity\relay\relay_win.exe` | -**옵션 2 – 수동 구성:** +4. Unity에서: 대기 중인 연결 승인 -터미널에서 실행합니다: +### 경로 B — Coplay MCP + +1. Python >= 3.11 설치 +2. Unity에서: git URL로 패키지 추가 `https://github.com/CoplayDev/unity-plugin.git#beta` +3. Claude Code 구성: + + ```bash + claude mcp add --scope user --transport stdio coplay-mcp \ + --env MCP_TOOL_TIMEOUT=720000 \ + -- uvx --python ">=3.11" coplay-mcp-server@1.5.5 + ``` + +--- + +## 3. 자동 진단 + +사용자가 연결 문제를 보고하거나 무언가 작동하지 않을 때, 다음 진단 순서를 +따르세요: + +### 1단계 — MCP 설정 확인 ```bash -claude mcp add unity-mcp -- --mcp +claude mcp list ``` -``를 해당 플랫폼에 맞는 경로로 교체하세요: +대상 MCP 서버(unity-mcp 또는 coplay-mcp)가 목록에 있는지 확인합니다. -| 플랫폼 | Relay 경로 | -|--------|-----------| -| macOS (Apple Silicon) | `~/.unity/relay/relay_mac_arm64.app/Contents/MacOS/relay_mac_arm64` | -| macOS (Intel) | `~/.unity/relay/relay_mac_x64.app/Contents/MacOS/relay_mac_x64` | -| Windows | `%USERPROFILE%\.unity\relay\relay_win.exe` | +### 2단계 — MCP 연결 테스트 -### A4. 연결 승인 +간단한 도구 호출을 시도합니다: -1. Unity로 돌아가서 **Edit > Project Settings > AI > Unity MCP**를 엽니다. -2. **Pending Connections** 아래에서 확인 후 **Accept**를 클릭합니다. +- **Coplay:** `list_editors` — 열린 Unity 인스턴스를 반환해야 함 +- **Unity 공식:** `Unity_ReadConsole` — 콘솔 메시지를 반환해야 함 -이전에 승인된 클라이언트는 자동으로 재연결됩니다. +### 3단계 — 일반적인 오류 유형 -### A5. 테스트 +| 증상 | 가능한 원인 | 해결 방법 | +|---------|-------------|-----| +| MCP가 목록에 없음 | 구성되지 않음 | `auto_setup.sh --auto` 실행 | +| "connecting" 상태 지속 | 서버가 실행 중이지 않음 | Claude Code 재시작; Unity가 열려 있는지 확인 | +| 연결 거부 | Unity Bridge 중단됨 | Project Settings > AI > Unity MCP > Start | +| 타임아웃 오류 | 작업이 너무 느림 | `MCP_TOOL_TIMEOUT`을 1800000으로 증가 | +| "python not found" | Python < 3.11 또는 미설치 | Python >= 3.11 설치 | +| "uvx not found" | uv 미설치 | `pip install uv` | +| 도구 호출 실패 | 잘못된 도구 이름 | `list available MCP tools`를 실행하여 정확한 이름 확인 | +| macOS PATH 문제 | Finder에서 Unity 실행 | 터미널에서 Unity Hub 실행: `open -a "Unity Hub"` | -Claude Code에서 다음을 시도하세요: +### 4단계 — 완전 초기화 -```text -Read the Unity console messages and summarize any warnings or errors. +아무것도 작동하지 않으면, 제거 후 다시 추가: + +```bash +claude mcp remove coplay-mcp # 또는 unity-mcp +bash auto_setup.sh --path coplay --force ``` -Claude가 `Unity_ReadConsole`를 호출할 수 있다면 설정이 완료된 것입니다. +추가 세부사항은 `troubleshooting.md`를 참조하세요. --- -## 경로 B – Coplay MCP (커뮤니티) +## 4. Unity 조작 — MCP 도구 사용법 -### B1. Python 3.11 이상 설치 +MCP 연결이 활성화되면, Unity를 직접 제어할 수 있습니다. +전체 도구 레퍼런스와 코드 템플릿은 `unity_operations.md`를 참조하세요. -Coplay의 MCP 서버는 Python 3.11 이상이 필요합니다. +### 핵심 원칙 -**확인:** +1. **먼저 도구를 탐색하세요.** 각 세션 시작 시 사용 가능한 MCP + 도구를 나열하여 어떤 작업이 지원되는지 확인합니다. +2. **복잡한 작업에는 run_code / ExecuteCode를 사용하세요.** 전용 도구가 + 없을 때, C# 코드를 작성하여 에디터에서 직접 실행합니다. +3. **각 작업 후 확인하세요.** 오브젝트를 생성하거나 수정한 후 + 콘솔과 계층 구조를 확인합니다. +4. **작업을 배치로 처리하세요.** 여러 오브젝트의 경우, 도구를 반복 호출하는 + 대신 하나의 C# 스크립트를 작성합니다. -```bash -python3 --version # macOS/Linux -python --version # Windows +### 씬 관리 + +**새 씬 생성:** + +```text +1. execute_menu_item("File/New Scene") +2. run_code를 통해 저장: + EditorSceneManager.SaveScene( + SceneManager.GetActiveScene(), "Assets/Scenes/.unity"); ``` -설치되어 있지 않은 경우: +**씬 내용 가져오기:** -- macOS: `brew install python@3.11` -- Windows: 에서 다운로드 +```text +get_scene_hierarchy → 전체 오브젝트 트리 반환 +``` -### B2. Coplay Unity 패키지 설치 +**씬 저장:** -1. Unity 프로젝트를 엽니다. -2. **Window > Package Manager > + > Add package from git URL**을 선택합니다. -3. 다음을 입력합니다: +```text +execute_menu_item("File/Save") +``` - ```text - https://github.com/CoplayDev/unity-plugin.git#beta - ``` +### GameObject 조작 + +**기본 도형 생성 (Cube, Sphere, Capsule, Plane, Cylinder):** -4. Coplay가 Editor에서 활성화되어 실행 중인지 확인합니다. +```text +create_primitive("Cube", name="MyCube") +set_component_property("MyCube", "Transform", "position", {x:0, y:1, z:0}) +``` -### B3. Claude Code에 Coplay MCP 추가 +**계층 구조 생성:** -```bash -claude mcp add \ - --scope user \ - --transport stdio \ - coplay-mcp \ - --env MCP_TOOL_TIMEOUT=720000 \ - -- uvx --python ">=3.11" coplay-mcp-server@1.5.5 +```text +1. 부모 생성: create_gameobject("Player") +2. 자식을 생성하고 Player 아래에 배치 +3. 각 자식의 Transform 설정 ``` -> Windows에서는 PowerShell에서 실행하세요. `uvx`를 찾을 수 없는 경우, -> 먼저 `pip install uv`로 설치하세요. +**컴포넌트 추가:** -### B4. 확인 +```text +add_component("Player", "Rigidbody") +add_component("Player", "CharacterController") +set_component_property("Player", "Rigidbody", "mass", 2.0) +``` -```bash -claude mcp list +### 스크립트 개발 + +사용자가 스크립트 생성을 요청하면, 전체 C# 파일을 생성하고 +`create_script` 또는 `run_code`를 사용하여 프로젝트에 작성합니다: + +```csharp +// Assets/Scripts/에 스크립트 파일 작성 +run_code(@" + System.IO.Directory.CreateDirectory(""Assets/Scripts""); + System.IO.File.WriteAllText(""Assets/Scripts/PlayerController.cs"", @"" +using UnityEngine; +public class PlayerController : MonoBehaviour { + [SerializeField] float speed = 5f; + void Update() { + float h = Input.GetAxis(""Horizontal""); + float v = Input.GetAxis(""Vertical""); + transform.Translate(new Vector3(h, 0, v) * speed * Time.deltaTime); + } +} +""); + AssetDatabase.Refresh(); +"); ``` -목록에 `coplay-mcp`가 표시되어야 합니다. +일반적인 스크립트 패턴 (전체 템플릿은 `unity_operations.md` 참조): -### B5. 테스트 +- **PlayerController** — CharacterController를 사용한 WASD 이동 +- **GameManager** — DontDestroyOnLoad 싱글톤 패턴 +- **HealthBarUI** — 색상 그라디언트가 있는 슬라이더 기반 UI +- **CameraFollow** — 오프셋을 사용한 부드러운 추적 +- **SceneLoader** — 로딩 화면이 있는 비동기 씬 전환 -Unity 프로젝트를 연 후, Claude Code에서 다음을 시도하세요: +### 머터리얼 및 비주얼 -```text -List all open Unity editors +```csharp +// 색상이 있는 머터리얼 생성 및 할당 +run_code(@" + var obj = GameObject.Find(""MyCube""); + var mat = new Material(Shader.Find(""Standard"")); + mat.color = Color.red; + obj.GetComponent().material = mat; +"); ``` -그런 다음: +### 에셋 구조 + +전문적인 프로젝트 구조 설정: + +```csharp +run_code(@" + string[] folders = { + ""Assets/Scripts"", ""Assets/Scenes"", ""Assets/Prefabs"", + ""Assets/Materials"", ""Assets/Textures"", ""Assets/Audio"", + ""Assets/Animations"", ""Assets/Fonts"", ""Assets/Resources"" + }; + foreach (var f in folders) { + var parts = f.Split('/'); + var parent = parts[0]; + for (int i = 1; i < parts.Length; i++) { + var next = parent + ""/"" + parts[i]; + if (!AssetDatabase.IsValidFolder(next)) + AssetDatabase.CreateFolder(parent, parts[i]); + parent = next; + } + } + AssetDatabase.Refresh(); +"); +``` + +### 디버깅 + +**콘솔 메시지 읽기:** ```text -Create a red cube at position (0, 1, 0) in the current Unity scene +get_console_logs 또는 Unity_ReadConsole +→ 오류와 경고를 요약하고 수정 방법 제안 ``` ---- +**누락된 스크립트 찾기:** -## 문제 해결 +```csharp +run_code(@" + foreach (var go in Resources.FindObjectsOfTypeAll()) { + foreach (var c in go.GetComponents()) { + if (c == null) Debug.LogWarning($""Missing script on: {go.name}""); + } + } +"); +``` -일반적인 문제에 대해서는 `references/troubleshooting.md`를 참고하세요: +--- -- `claude` 명령어를 찾을 수 없음 -- MCP 서버가 "connecting" 상태에서 멈춤 -- Unity에서 MCP 클라이언트를 감지하지 못함 -- Finder에서 Unity를 실행할 때 macOS PATH 문제 -- 대규모 작업에서의 타임아웃 오류 -- Windows 전용 PowerShell 관련 문제 +## 5. 빠른 프로토타입 워크플로우 + +사용자가 빠르게 무언가를 만들고 싶을 때, 다음 구조화된 워크플로우를 따르세요. + +### 3D 공 굴리기 게임 + +1. "GameLevel" 씬 생성 +2. 바닥 생성 (Plane, 스케일 5x5) +3. 플레이어 생성 (Sphere + Rigidbody, y=0.5) +4. BallController.cs 생성 — 힘 기반 WASD 이동 +5. 수집 아이템 생성 (트리거 콜라이더가 있는 작은 큐브) +6. Collectible.cs 생성 — OnTriggerEnter → 파괴 + 점수 추가 +7. ScoreManager.cs 싱글톤 생성 +8. 점수 텍스트가 있는 UI Canvas 생성 +9. 부드러운 추적을 위한 CameraFollow.cs 추가 +10. 조명 및 스카이박스 설정 + +### 2D 플랫포머 + +1. 2D 씬 생성 +2. 바닥 스프라이트 / 타일맵 생성 +3. 플레이어 생성 (스프라이트 + Rigidbody2D + BoxCollider2D) +4. PlatformController2D.cs 생성 — 이동 + 점프 + 바닥 체크 +5. 다양한 높이에 플랫폼 생성 +6. CameraFollow2D.cs 추가 +7. 플랫폼 아래 데스 존 추가 +8. 점수/생명 UI 추가 + +### FPS 프로토타입 + +1. 지형 또는 바닥이 있는 씬 생성 +2. 플레이어 생성 (Capsule + CharacterController + Camera를 자식으로) +3. FPSController.cs 생성 — WASD + 마우스 시점 +4. 간단한 장애물 생성 (벽, 상자) +5. 사격 메커니즘 추가 (레이캐스트 또는 투사체) +6. 체력이 있는 적 대상 추가 +7. 조준점 UI 및 탄약 카운터 추가 + +### UI 메뉴 시스템 + +1. Canvas 생성 (Screen Space - Overlay) +2. 타이틀 텍스트 생성 (TextMeshPro) +3. 버튼 생성: Start, Settings, Quit +4. 버튼 핸들러용 MainMenuController.cs 생성 +5. 볼륨 슬라이더가 있는 설정 패널 생성 +6. 씬 전환 로직 생성 --- -## 설정 후 팁 +## 6. 설정 후 팁 -- Unity 프로젝트 루트에서 `claude /init`을 실행하여 프로젝트 규칙을 Claude Code에 알려주는 `CLAUDE.md`를 생성하세요. -- Claude Code에서 `@` 기호를 사용하여 특정 파일을 참조할 수 있습니다. 예: `@PlayerController.cs` -- Coplay MCP의 경우, 장시간 작업에서 타임아웃 오류가 발생하면 `MCP_TOOL_TIMEOUT` 값을 늘리세요 (기본값은 720000ms = 12분). +- Unity 프로젝트 루트에서 `claude /init`을 실행하여 프로젝트 규칙을 설명하는 + `CLAUDE.md`를 생성하세요. +- Claude Code에서 `@`를 사용하여 파일을 참조하세요: `@PlayerController.cs`. +- 대규모 작업의 경우 `MCP_TOOL_TIMEOUT`을 늘리세요 (기본값 12분). +- 씬을 자주 저장하세요 — `execute_menu_item("File/Save")`로 실행. +- 전용 MCP 도구가 없는 작업에는 `run_code` / `ExecuteCode`를 + 만능 도구로 사용하세요. diff --git a/i18n/zh-CN/README.md b/i18n/zh-CN/README.md index 42f852f..8d23c72 100644 --- a/i18n/zh-CN/README.md +++ b/i18n/zh-CN/README.md @@ -2,33 +2,50 @@ # unity-claude-code-skill -一个 **Claude Code 自定义 Skill**,用于引导用户通过 MCP(Model Context Protocol)将 Claude Code 与 Unity Editor 连接起来。 +一个将 Claude Code 转变为 Unity AI 开发助手的 **Claude Code 自定义 Skill** +— 支持一键 MCP 设置、自动诊断,以及通过自然语言直接操作 +Unity Editor。 > **什么是 Claude Code Skill?** -> Skill 是基于文件系统的指令集,Claude Code 在相关场景下会自动加载。它们存放在包含 `SKILL.md` 文件的文件夹中,并可选包含脚本和参考资料。详情请参阅 +> Skill 是基于文件系统的指令集,Claude Code 在相关场景下会自动加载。 +> 它们存放在包含 `SKILL.md` 文件的文件夹中,并可选包含脚本和参考资料。 +> 详情请参阅 > [Claude Code Custom Skills 文档](https://code.claude.com/docs/en/skills)。 ## 这个 Skill 做什么 -当用户向 Claude Code 询问任何与 Unity 连接相关的问题时,此 Skill 会提供以下内容的分步指导: +| 功能 | 描述 | +|---------|-------------| +| **一键设置** | 自动设置脚本通过单一命令配置 MCP | +| **自动诊断** | 检测并建议修复连接问题 | +| **Unity 操作** | 通过 MCP 工具控制 Unity 的模板与工作流 | +| **快速原型** | 常见游戏类型的分步工作流 | +| **脚本生成** | PlayerController、GameManager、UI 等 C# 模板 | -- **路径 A – Unity Official MCP**(`com.unity.ai.assistant`)— 适用于 Unity 6+ -- **路径 B – Coplay MCP**(社区版)— 适用于 Unity 2022+ +### 支持的 MCP 路径 -涵盖 **Windows** 和 **macOS** 的安装、配置、连接审批、验证及故障排除。 +- **路径 A — Unity 官方 MCP**(`com.unity.ai.assistant`)— 适用于 Unity 6+ +- **路径 B — Coplay MCP**(社区版)— 适用于 Unity 2022+ ## 仓库结构 ```text unity-claude-code-skill/ -├── SKILL.md # 核心 Skill 指令(Claude Code 自动加载) +├── SKILL.md # 核心 Skill:设置 + 操作 + 工作流 ├── README.md # 本文件 ├── LICENSE # MIT -├── scripts/ -│ ├── verify_setup.sh # macOS/Linux 前置条件检查脚本 -│ └── verify_setup.ps1 # Windows 前置条件检查脚本 -└── references/ - └── troubleshooting.md # 常见问题与解决方案 +├── auto_setup.sh # 一键 MCP 设置(macOS/Linux) +├── auto_setup.ps1 # 一键 MCP 设置(Windows) +├── unity_operations.md # 详细 MCP 工具参考 & 代码模板 +├── verify_setup.sh # 前置条件检查器(macOS/Linux) +├── verify_setup.ps1 # 前置条件检查器(Windows) +├── troubleshooting.md # 常见问题 & 解决方案 +├── .github/workflows/ci.yml # CI:Markdown lint、shellcheck、链接检查 +└── i18n/ # 翻译 + ├── ko/ # 한국어 (Korean) + ├── ja/ # 日本語 (Japanese) + ├── zh-TW/ # 繁體中文 (Traditional Chinese) + └── zh-CN/ # 简体中文 (Simplified Chinese) ``` ## 快速安装 @@ -37,11 +54,11 @@ unity-claude-code-skill/ ```bash # 用户级 skill(所有项目中均可用) -git clone https://github.com//unity-claude-code-skill.git \ +git clone https://github.com/ryan-focus/unity-claude-code-skill.git \ ~/.claude/skills/unity-claude-code-setup # 或项目级 skill(仅在当前项目中可用) -git clone https://github.com//unity-claude-code-skill.git \ +git clone https://github.com/ryan-focus/unity-claude-code-skill.git \ .claude/skills/unity-claude-code-setup ``` @@ -52,56 +69,86 @@ git clone https://github.com//unity-claude-code-skill.git \ ```bash mkdir -p ~/.claude/skills/unity-claude-code-setup curl -o ~/.claude/skills/unity-claude-code-setup/SKILL.md \ - https://raw.githubusercontent.com//unity-claude-code-skill/main/SKILL.md + https://raw.githubusercontent.com/ryan-focus/unity-claude-code-skill/main/SKILL.md ``` +## 一键 MCP 设置 + +安装 Skill 后,运行自动设置脚本以配置 MCP 连接: + +**macOS / Linux:** + +```bash +cd ~/.claude/skills/unity-claude-code-setup +bash auto_setup.sh --auto # 自动检测最佳路径 +bash auto_setup.sh --path coplay # 强制使用 Coplay MCP +bash auto_setup.sh --path unity # 强制使用 Unity 官方 MCP +``` + +**Windows(PowerShell):** + +```powershell +cd "$env:USERPROFILE\.claude\skills\unity-claude-code-setup" +.\auto_setup.ps1 -Auto # 自动检测最佳路径 +.\auto_setup.ps1 -Path coplay # 强制使用 Coplay MCP +.\auto_setup.ps1 -Path unity # 强制使用 Unity 官方 MCP +``` + +**选项:** + +- `--force` / `-Force` — 移除现有 MCP 配置后重新添加 +- `--timeout ` / `-Timeout ` — 自定义超时时间(默认:720000ms) +- `--coplay-version ` / `-CoplayVersion ` — Coplay 服务器版本 + ## 使用方法 -安装完成后,只需用自然语言与 Claude Code 对话: +安装并连接后,只需用自然语言与 Claude Code 对话: + +**设置:** - *"帮我设置 Claude Code 与 Unity 的连接"* - *"我想通过 MCP 将我的 Unity 项目连接到 Claude Code"* -- *"如何为 Unity 安装 Coplay MCP?"* -- *"在 Windows 上设置 Unity MCP"* -Claude Code 将自动加载此 Skill 并引导你完成整个流程。 +**操作:** -### 运行验证脚本 +- *"创建一个叫 GameLevel 的新场景"* +- *"在位置 (0, 2, 0) 添加一个红色方块"* +- *"创建一个带 WASD 移动的 PlayerController 脚本"* +- *"设置标准项目文件夹结构"* +- *"检查 Unity 控制台的错误"* -设置完成后,你可以验证一切是否就绪: +**快速原型:** -**macOS/Linux:** +- *"帮我做一个滚球游戏原型"* +- *"创建一个基本的 2D 平台游戏"* +- *"构建一个主菜单 UI 系统"* -```bash -bash ~/.claude/skills/unity-claude-code-setup/scripts/verify_setup.sh -``` - -**Windows (PowerShell):** +**诊断:** -```powershell -. "$env:USERPROFILE\.claude\skills\unity-claude-code-setup\scripts\verify_setup.ps1" -``` +- *"MCP 连接不上,帮我修一下"* +- *"对我的 Unity 设置运行诊断"* ## 前置条件 | 工具 | 用途 | 安装方式 | -|------|------|----------| +|------|-------------|---------| | Claude Code | 两条路径均需要 | `curl -fsSL https://claude.ai/install.sh \| bash`(macOS/Linux)或 `irm https://claude.ai/install.ps1 \| iex`(Windows) | | Unity 6+ | 路径 A | [unity.com](https://unity.com/download) | | Unity 2022+ | 路径 B | [unity.com](https://unity.com/download) | -| Python ≥ 3.11 | 仅路径 B | [python.org](https://www.python.org/downloads/) | +| Python >= 3.11 | 仅路径 B | [python.org](https://www.python.org/downloads/) | | Git for Windows | 仅 Windows | [git-scm.com](https://git-scm.com/download/win) | ## 关键资源 -- [Unity Official MCP 文档](https://docs.unity3d.com/Packages/com.unity.ai.assistant@2.0/manual/unity-mcp-get-started.html) +- [Unity 官方 MCP 文档](https://docs.unity3d.com/Packages/com.unity.ai.assistant@2.0/manual/unity-mcp-get-started.html) - [Coplay MCP + Claude Code 指南](https://docs.coplay.dev/coplay-mcp/claude-code-guide) - [Claude Code MCP 文档](https://code.claude.com/docs/en/mcp) - [CoplayDev/unity-mcp GitHub 仓库](https://github.com/CoplayDev/unity-mcp) ## 贡献 -欢迎提交 PR!如果你发现某个步骤已过时,或希望添加对 Linux 或其他 MCP 客户端(Cursor、Windsurf 等)的支持,请随时提交 issue 或 pull request。 +欢迎提交 PR!如果你发现某个步骤已过时,或希望添加对 Linux 或其他 MCP +客户端(Cursor、Windsurf 等)的支持,请随时提交 issue 或 pull request。 ## 许可证 diff --git a/i18n/zh-CN/SKILL.md b/i18n/zh-CN/SKILL.md index 5446ffb..49a4348 100644 --- a/i18n/zh-CN/SKILL.md +++ b/i18n/zh-CN/SKILL.md @@ -1,212 +1,365 @@ --- -name: unity-claude-code-setup +name: unity-claude-code-assistant description: > - 分步指南:安装 Claude Code,通过 MCP(Model Context Protocol)将其连接到 - Unity Editor,并验证集成是否正常工作。涵盖 Unity 官方 MCP - (com.unity.ai.assistant)和社区版 Coplay MCP。支持 Windows 和 macOS。 - 当用户提到设置 Claude Code 与 Unity 的连接、将 AI 助手连接到 Unity Editor、 - 安装 Unity MCP、设置 Coplay MCP,或希望通过 Claude Code 使用自然语言控制 - Unity 场景、GameObject、资源或脚本时,请使用此 Skill。当用户询问 AI 辅助 - Unity 开发的前置条件、Claude Code + Unity 连接的故障排除,或比较 Unity MCP - 与 Coplay MCP 时,也应触发此 Skill。 + Complete Unity AI development assistant. Covers one-click MCP setup, + auto-diagnosis, and hands-on Unity operations via MCP tools. + Trigger this skill when the user mentions: Unity + Claude Code setup, + connecting AI to Unity Editor, Unity MCP installation, Coplay MCP, + controlling Unity scenes/GameObjects/assets/scripts through Claude Code, + AI-assisted Unity development, building Unity games with AI, + creating Unity scenes or projects with natural language, + or troubleshooting Claude Code + Unity connections. --- -# Unity + Claude Code + MCP 设置指南 +# Unity + Claude Code — AI 开发助手 -此 Skill 将引导你通过 MCP 将 Claude Code 连接到 Unity Editor,以便你可以使用自然语言控制场景、资源、脚本等。 - -有**两条主要路径**。根据用户的情况选择合适的路径: - -| 路径 | 适用场景 | -|------|----------| -| **路径 A – Unity Official MCP** | Unity 6+ 搭配 `com.unity.ai.assistant` 包。由 Unity 官方支持。 | -| **路径 B – Coplay MCP(社区版)** | Unity 2022+。工具更多、迭代更快、社区驱动。 | - -如果用户不确定,请询问其 Unity 版本。Unity 6+ 用户可以使用任一路径;Unity 2022–2023 用户应使用路径 B。 +你是通过 MCP 连接到 Unity Editor 的 Unity 开发助手。 +此技能涵盖**设置**、**自动诊断**和**直接 Unity 操作**。 --- -## 共享前置条件 - -在使用任一路径之前,请确保以下条件已满足: +## 1. 快速设置(一键安装) -### 1. 安装 Claude Code - -Claude Code 需要付费的 Anthropic 计划(Pro、Max、Team 或 Enterprise)。 +若 MCP 连接尚未配置,请使用自动设置脚本: **macOS / Linux:** ```bash -curl -fsSL https://claude.ai/install.sh | bash +bash auto_setup.sh --auto # 自动检测最佳路径 +bash auto_setup.sh --path coplay # 强制使用 Coplay MCP +bash auto_setup.sh --path unity # 强制使用 Unity 官方 MCP ``` -**Windows (PowerShell):** +**Windows(PowerShell):** ```powershell -irm https://claude.ai/install.ps1 | iex +.\auto_setup.ps1 -Auto # 自动检测最佳路径 +.\auto_setup.ps1 -Path coplay # 强制使用 Coplay MCP +.\auto_setup.ps1 -Path unity # 强制使用 Unity 官方 MCP ``` -> Windows 还需要安装 **Git for Windows**。 +**选项:** -**验证:** +- `--force` / `-Force` — 移除现有配置后重新添加 +- `--timeout ` / `-Timeout ` — 自定义超时时间(默认:720000) -```bash -claude --version -``` +### 路径 A vs 路径 B -首次启动后,运行 `claude` 并按照浏览器提示完成身份验证。 +| | 路径 A — Unity 官方 MCP | 路径 B — Coplay MCP | +|---|---|---| +| 包 | `com.unity.ai.assistant` | `coplay-mcp-server` | +| Unity | 6+ | 2022+ | +| 工具 | 较少,官方支持 | 更多工具,社区驱动 | +| 设置 | Relay 二进制文件 + 批准连接 | Python 3.11 + uvx | -### 2. 验证 Unity 已安装 - -- 路径 A 需要 **Unity 6 (6000.0)** 或更高版本。 -- 路径 B 需要 **Unity 2022** 或更高版本。 +若用户不确定,请询问其 Unity 版本。Unity 6+ → 两条路径均可。Unity 2022–2023 → 路径 B。 --- -## 路径 A – Unity Official MCP +## 2. 手动设置 -### A1. 安装 AI Assistant 包 +仅在自动设置脚本失败时使用。 -在 Unity 中,前往 **Window > Package Manager**,点击 **+**,选择 -**Add package by name**,然后输入: +### 共享前置条件 -```text -com.unity.ai.assistant -``` +1. **Claude Code** — 需要付费 Anthropic 计划 -### A2. 启动 Unity Bridge + ```bash + # macOS/Linux + curl -fsSL https://claude.ai/install.sh | bash + # Windows + irm https://claude.ai/install.ps1 | iex + ``` + +2. **Unity** — 路径 A 需要 Unity 6+,路径 B 需要 Unity 2022+ -1. 前往 **Edit > Project Settings > AI > Unity MCP**。 -2. 确认 **Unity Bridge** 状态显示为 **Running**(绿色)。 -3. 如果显示 **Stopped**,点击 **Start**。 +### 路径 A — Unity 官方 MCP -relay binary 会自动安装到 `~/.unity/relay/`。 +1. 通过 Package Manager 安装 `com.unity.ai.assistant` +2. Edit > Project Settings > AI > Unity MCP → 确认 Bridge 为 **Running** +3. 配置 Claude Code: -### A3. 配置 Claude Code + ```bash + claude mcp add unity-mcp -- --mcp + ``` -**选项 1 – 自动配置(推荐):** -在 Unity 的 **Project Settings > AI > Unity MCP > Integrations** 中,找到 -**Claude Code** 并点击 **Configure**。 + | 平台 | Relay 路径 | + |----------|-----------| + | macOS ARM | `~/.unity/relay/relay_mac_arm64.app/Contents/MacOS/relay_mac_arm64` | + | macOS Intel | `~/.unity/relay/relay_mac_x64.app/Contents/MacOS/relay_mac_x64` | + | Windows | `%USERPROFILE%\.unity\relay\relay_win.exe` | -**选项 2 – 手动配置:** +4. 在 Unity 中:批准待处理的连接 -在终端中运行: +### 路径 B — Coplay MCP + +1. 安装 Python >= 3.11 +2. 在 Unity 中:通过 git URL 添加包 `https://github.com/CoplayDev/unity-plugin.git#beta` +3. 配置 Claude Code: + + ```bash + claude mcp add --scope user --transport stdio coplay-mcp \ + --env MCP_TOOL_TIMEOUT=720000 \ + -- uvx --python ">=3.11" coplay-mcp-server@1.5.5 + ``` + +--- + +## 3. 自动诊断 + +当用户报告连接问题或某些功能无法正常工作时,请按照以下诊断顺序进行: + +### 步骤 1 — 检查 MCP 配置 ```bash -claude mcp add unity-mcp -- --mcp +claude mcp list ``` -将 `` 替换为你平台对应的路径: +确认目标 MCP 服务器(unity-mcp 或 coplay-mcp)在列表中。 -| 平台 | Relay 路径 | -|------|-----------| -| macOS (Apple Silicon) | `~/.unity/relay/relay_mac_arm64.app/Contents/MacOS/relay_mac_arm64` | -| macOS (Intel) | `~/.unity/relay/relay_mac_x64.app/Contents/MacOS/relay_mac_x64` | -| Windows | `%USERPROFILE%\.unity\relay\relay_win.exe` | +### 步骤 2 — 测试 MCP 连接 -### A4. 批准连接 +尝试一个简单的工具调用: -1. 回到 Unity:**Edit > Project Settings > AI > Unity MCP**。 -2. 在 **Pending Connections** 下,查看并点击 **Accept**。 +- **Coplay:** `list_editors` — 应返回已打开的 Unity 实例 +- **Unity 官方:** `Unity_ReadConsole` — 应返回控制台消息 -之前已批准的客户端会自动重新连接。 +### 步骤 3 — 常见故障模式 -### A5. 测试 +| 症状 | 可能原因 | 修复方式 | +|---------|-------------|-----| +| MCP 不在列表中 | 尚未配置 | 运行 `auto_setup.sh --auto` | +| 持续显示"connecting" | 服务器未运行 | 重启 Claude Code;确认 Unity 已打开 | +| 连接被拒 | Unity Bridge 已停止 | Project Settings > AI > Unity MCP > Start | +| 超时错误 | 操作太慢 | 将 `MCP_TOOL_TIMEOUT` 增加到 1800000 | +| "python not found" | Python < 3.11 或未安装 | 安装 Python >= 3.11 | +| "uvx not found" | uv 未安装 | `pip install uv` | +| 工具调用失败 | 错误的工具名称 | 运行 `list available MCP tools` 以确认正确名称 | +| macOS PATH 问题 | 从 Finder 启动 Unity | 从终端启动 Unity Hub:`open -a "Unity Hub"` | -在 Claude Code 中,尝试: +### 步骤 4 — 完全重置 -```text -Read the Unity console messages and summarize any warnings or errors. +若所有方法都无效,请移除并重新添加: + +```bash +claude mcp remove coplay-mcp # 或 unity-mcp +bash auto_setup.sh --path coplay --force ``` -如果 Claude 能调用 `Unity_ReadConsole`,则设置完成。 +更多详细信息请参阅 `troubleshooting.md`。 --- -## 路径 B – Coplay MCP(社区版) +## 4. Unity 操作 — 如何使用 MCP 工具 -### B1. 安装 Python 3.11+ +当 MCP 连接处于活跃状态时,你可以直接控制 Unity。 +完整工具参考和代码模板请参阅 `unity_operations.md`。 -Coplay 的 MCP 服务器需要 Python ≥ 3.11。 +### 核心原则 -**验证:** +1. **先探索工具。** 在每次会话开始时,列出可用的 MCP + 工具以了解支持哪些操作。 +2. **复杂操作请使用 run_code / ExecuteCode。** 当没有专用工具时, + 编写 C# 代码并在编辑器中直接执行。 +3. **每次操作后进行验证。** 创建或修改对象后, + 检查控制台和层级面板。 +4. **批量处理操作。** 对于多个对象,编写一个 C# 脚本, + 而不是重复调用工具。 -```bash -python3 --version # macOS/Linux -python --version # Windows +### 场景管理 + +**创建新场景:** + +```text +1. execute_menu_item("File/New Scene") +2. 通过 run_code 保存: + EditorSceneManager.SaveScene( + SceneManager.GetActiveScene(), "Assets/Scenes/.unity"); ``` -如果未安装: +**获取场景内容:** -- macOS:`brew install python@3.11` -- Windows:从 下载 +```text +get_scene_hierarchy → 返回完整对象树 +``` -### B2. 安装 Coplay Unity 包 +**保存场景:** -1. 打开你的 Unity 项目。 -2. **Window > Package Manager > + > Add package from git URL** -3. 输入: +```text +execute_menu_item("File/Save") +``` - ```text - https://github.com/CoplayDev/unity-plugin.git#beta - ``` +### GameObject 操作 + +**创建基本形状(Cube、Sphere、Capsule、Plane、Cylinder):** -4. 确保 Coplay 在编辑器中已启用并正在运行。 +```text +create_primitive("Cube", name="MyCube") +set_component_property("MyCube", "Transform", "position", {x:0, y:1, z:0}) +``` -### B3. 将 Coplay MCP 添加到 Claude Code +**创建层级结构:** -```bash -claude mcp add \ - --scope user \ - --transport stdio \ - coplay-mcp \ - --env MCP_TOOL_TIMEOUT=720000 \ - -- uvx --python ">=3.11" coplay-mcp-server@1.5.5 +```text +1. 创建父对象:create_gameobject("Player") +2. 创建子对象并设为 Player 的子项 +3. 设置每个子项的 Transform ``` -> 在 Windows 上,请在 PowerShell 中运行此命令。如果找不到 `uvx`,请先运行 -> `pip install uv` 安装。 +**添加组件:** -### B4. 验证 +```text +add_component("Player", "Rigidbody") +add_component("Player", "CharacterController") +set_component_property("Player", "Rigidbody", "mass", 2.0) +``` -```bash -claude mcp list +### 脚本开发 + +当用户要求创建脚本时,生成完整的 C# 文件并使用 +`create_script` 或 `run_code` 写入项目: + +```csharp +// 将脚本文件写入 Assets/Scripts/ +run_code(@" + System.IO.Directory.CreateDirectory(""Assets/Scripts""); + System.IO.File.WriteAllText(""Assets/Scripts/PlayerController.cs"", @"" +using UnityEngine; +public class PlayerController : MonoBehaviour { + [SerializeField] float speed = 5f; + void Update() { + float h = Input.GetAxis(""Horizontal""); + float v = Input.GetAxis(""Vertical""); + transform.Translate(new Vector3(h, 0, v) * speed * Time.deltaTime); + } +} +""); + AssetDatabase.Refresh(); +"); ``` -你应该能在列表中看到 `coplay-mcp`。 +常见脚本模式(完整模板请参阅 `unity_operations.md`): -### B5. 测试 +- **PlayerController** — 使用 CharacterController 的 WASD 移动 +- **GameManager** — DontDestroyOnLoad 单例模式 +- **HealthBarUI** — 带颜色渐变的滑块式 UI +- **CameraFollow** — 带偏移的平滑跟随 +- **SceneLoader** — 带加载画面的异步场景切换 -打开你的 Unity 项目,然后在 Claude Code 中: +### 材质与视觉效果 -```text -List all open Unity editors +```csharp +// 创建并分配带有颜色的材质 +run_code(@" + var obj = GameObject.Find(""MyCube""); + var mat = new Material(Shader.Find(""Standard"")); + mat.color = Color.red; + obj.GetComponent().material = mat; +"); ``` -然后尝试: +### 资源结构 + +设置专业的项目结构: + +```csharp +run_code(@" + string[] folders = { + ""Assets/Scripts"", ""Assets/Scenes"", ""Assets/Prefabs"", + ""Assets/Materials"", ""Assets/Textures"", ""Assets/Audio"", + ""Assets/Animations"", ""Assets/Fonts"", ""Assets/Resources"" + }; + foreach (var f in folders) { + var parts = f.Split('/'); + var parent = parts[0]; + for (int i = 1; i < parts.Length; i++) { + var next = parent + ""/"" + parts[i]; + if (!AssetDatabase.IsValidFolder(next)) + AssetDatabase.CreateFolder(parent, parts[i]); + parent = next; + } + } + AssetDatabase.Refresh(); +"); +``` + +### 调试 + +**读取控制台消息:** ```text -Create a red cube at position (0, 1, 0) in the current Unity scene +get_console_logs 或 Unity_ReadConsole +→ 总结错误和警告,建议修复方式 ``` ---- +**查找缺失的脚本:** -## 故障排除 +```csharp +run_code(@" + foreach (var go in Resources.FindObjectsOfTypeAll()) { + foreach (var c in go.GetComponents()) { + if (c == null) Debug.LogWarning($""Missing script on: {go.name}""); + } + } +"); +``` -阅读 `references/troubleshooting.md` 了解常见问题,包括: +--- -- `claude` 命令未找到 -- MCP 服务器卡在"connecting"状态 -- Unity 未检测到 MCP 客户端 -- macOS 从 Finder 启动 Unity 时的 PATH 问题 -- 大型操作的超时错误 -- Windows 特有的 PowerShell 问题 +## 5. 快速原型工作流 + +当用户希望快速构建某样东西时,请遵循以下结构化工作流。 + +### 3D 滚球游戏 + +1. 创建场景 "GameLevel" +2. 创建地板(Plane,缩放 5x5) +3. 创建玩家(Sphere + Rigidbody,y=0.5) +4. 创建 BallController.cs — 力驱动的 WASD 移动 +5. 创建收集物品(带触发碰撞器的小方块) +6. 创建 Collectible.cs — OnTriggerEnter → 销毁 + 加分 +7. 创建 ScoreManager.cs 单例 +8. 创建带分数文本的 UI Canvas +9. 添加 CameraFollow.cs 进行平滑跟随 +10. 设置灯光和天空盒 + +### 2D 平台游戏 + +1. 创建 2D 场景 +2. 创建地面精灵 / 瓦片地图 +3. 创建玩家(精灵 + Rigidbody2D + BoxCollider2D) +4. 创建 PlatformController2D.cs — 移动 + 跳跃 + 地面检测 +5. 在不同高度创建平台 +6. 添加 CameraFollow2D.cs +7. 在平台下方添加死亡区域 +8. 添加分数/生命 UI + +### FPS 原型 + +1. 创建带有地形或地板的场景 +2. 创建玩家(Capsule + CharacterController + Camera 作为子对象) +3. 创建 FPSController.cs — WASD + 鼠标视角 +4. 创建简单障碍物(墙壁、箱子) +5. 添加射击机制(射线检测或抛射物) +6. 添加带生命值的敌方目标 +7. 添加准星 UI 和弹药计数器 + +### UI 菜单系统 + +1. 创建 Canvas(Screen Space - Overlay) +2. 创建标题文本(TextMeshPro) +3. 创建按钮:Start、Settings、Quit +4. 创建按钮处理程序的 MainMenuController.cs +5. 创建带音量滑块的设置面板 +6. 创建场景切换逻辑 --- -## 设置后提示 +## 6. 设置后提示 -- 在 Unity 项目根目录运行 `claude /init`,生成一个 `CLAUDE.md` 文件来向 Claude Code 描述你的项目规范。 -- 在 Claude Code 中使用 `@` 符号引用特定文件,例如 - `@PlayerController.cs`。 -- 对于 Coplay MCP,如果在长时间操作中遇到超时错误,请增大 `MCP_TOOL_TIMEOUT`(默认值为 720000ms = 12 分钟)。 +- 在 Unity 项目根目录运行 `claude /init` 以生成描述项目规范的 `CLAUDE.md`。 +- 在 Claude Code 中使用 `@` 引用文件:`@PlayerController.cs`。 +- 大型操作请增大 `MCP_TOOL_TIMEOUT`(默认 12 分钟)。 +- 经常保存场景 — 通过 `execute_menu_item("File/Save")` 触发。 +- 对于没有专用 MCP 工具的操作,使用 `run_code` / `ExecuteCode` + 作为万能工具。 diff --git a/i18n/zh-TW/README.md b/i18n/zh-TW/README.md index c362d31..addeb0e 100644 --- a/i18n/zh-TW/README.md +++ b/i18n/zh-TW/README.md @@ -2,46 +2,63 @@ # unity-claude-code-skill -一個 **Claude Code 自訂 Skill**,引導使用者透過 MCP(Model Context Protocol)將 Claude Code 與 Unity Editor 進行連接設定。 - -> **什麼是 Claude Code Skill?** -> Skill 是基於檔案系統的指令集,Claude Code 會在相關時自動載入。它們存放在包含 `SKILL.md` 檔案及選用腳本/參考資料的資料夾中。詳情請參閱 +一個將 Claude Code 轉變為 Unity AI 開發助理的 **Claude Code 自訂 Skill** +— 支援一鍵 MCP 設定、自動診斷,以及透過自然語言直接操作 +Unity Editor。 + +> **什麼是 Claude Code Skill?** +> Skill 是基於檔案系統的指令集,Claude Code 會在相關時自動載入。 +> 它們存放在包含 `SKILL.md` 檔案及選用腳本/參考資料的資料夾中。 +> 詳情請參閱 > [Claude Code Custom Skills 文件](https://code.claude.com/docs/en/skills)。 ## 此 Skill 的功能 -當使用者向 Claude Code 詢問任何與連接 Unity 相關的問題時,此 Skill 會提供以下逐步指南: +| 功能 | 說明 | +|---------|-------------| +| **一鍵設定** | 自動設定腳本透過單一指令設定 MCP | +| **自動診斷** | 偵測並建議修復連線問題 | +| **Unity 操作** | 透過 MCP 工具控制 Unity 的範本與工作流程 | +| **快速原型製作** | 常見遊戲類型的逐步工作流程 | +| **腳本生成** | PlayerController、GameManager、UI 等 C# 範本 | -- **路徑 A – Unity 官方 MCP**(`com.unity.ai.assistant`)— 適用於 Unity 6+ -- **路徑 B – Coplay MCP**(社群版)— 適用於 Unity 2022+ +### 支援的 MCP 路徑 -涵蓋安裝、設定、連線核准、驗證及疑難排解,同時支援 **Windows** 和 **macOS**。 +- **路徑 A — Unity 官方 MCP**(`com.unity.ai.assistant`)— 適用於 Unity 6+ +- **路徑 B — Coplay MCP**(社群版)— 適用於 Unity 2022+ ## 儲存庫結構 ```text unity-claude-code-skill/ -├── SKILL.md # 核心 Skill 指令(由 Claude Code 自動載入) +├── SKILL.md # 核心 Skill:設定 + 操作 + 工作流程 ├── README.md # 本檔案 ├── LICENSE # MIT -├── scripts/ -│ ├── verify_setup.sh # macOS/Linux 前置需求檢查腳本 -│ └── verify_setup.ps1 # Windows 前置需求檢查腳本 -└── references/ - └── troubleshooting.md # 常見問題與修復方式 +├── auto_setup.sh # 一鍵 MCP 設定(macOS/Linux) +├── auto_setup.ps1 # 一鍵 MCP 設定(Windows) +├── unity_operations.md # 詳細 MCP 工具參考 & 程式碼範本 +├── verify_setup.sh # 前置需求檢查器(macOS/Linux) +├── verify_setup.ps1 # 前置需求檢查器(Windows) +├── troubleshooting.md # 常見問題 & 修復方式 +├── .github/workflows/ci.yml # CI:Markdown lint、shellcheck、連結檢查 +└── i18n/ # 翻譯 + ├── ko/ # 한국어 (Korean) + ├── ja/ # 日本語 (Japanese) + ├── zh-TW/ # 繁體中文 (Traditional Chinese) + └── zh-CN/ # 简体中文 (Simplified Chinese) ``` ## 快速安裝 -### 選項 1:將儲存庫複製到 Claude Code skills 目錄 +### 選項 1:複製到 Claude Code skills 目錄 ```bash # 使用者層級 skill(在所有專案中可用) -git clone https://github.com//unity-claude-code-skill.git \ +git clone https://github.com/ryan-focus/unity-claude-code-skill.git \ ~/.claude/skills/unity-claude-code-setup # 或專案層級 skill(僅在此專案中可用) -git clone https://github.com//unity-claude-code-skill.git \ +git clone https://github.com/ryan-focus/unity-claude-code-skill.git \ .claude/skills/unity-claude-code-setup ``` @@ -52,44 +69,73 @@ git clone https://github.com//unity-claude-code-skill.git \ ```bash mkdir -p ~/.claude/skills/unity-claude-code-setup curl -o ~/.claude/skills/unity-claude-code-setup/SKILL.md \ - https://raw.githubusercontent.com//unity-claude-code-skill/main/SKILL.md + https://raw.githubusercontent.com/ryan-focus/unity-claude-code-skill/main/SKILL.md ``` +## 一鍵 MCP 設定 + +安裝 Skill 後,執行自動設定腳本以設定 MCP 連線: + +**macOS / Linux:** + +```bash +cd ~/.claude/skills/unity-claude-code-setup +bash auto_setup.sh --auto # 自動偵測最佳路徑 +bash auto_setup.sh --path coplay # 強制使用 Coplay MCP +bash auto_setup.sh --path unity # 強制使用 Unity 官方 MCP +``` + +**Windows(PowerShell):** + +```powershell +cd "$env:USERPROFILE\.claude\skills\unity-claude-code-setup" +.\auto_setup.ps1 -Auto # 自動偵測最佳路徑 +.\auto_setup.ps1 -Path coplay # 強制使用 Coplay MCP +.\auto_setup.ps1 -Path unity # 強制使用 Unity 官方 MCP +``` + +**選項:** + +- `--force` / `-Force` — 移除現有 MCP 設定後重新新增 +- `--timeout ` / `-Timeout ` — 自訂逾時時間(預設:720000ms) +- `--coplay-version ` / `-CoplayVersion ` — Coplay 伺服器版本 + ## 使用方式 -安裝完成後,只需以自然語言與 Claude Code 對話: +安裝並連線後,只需以自然語言與 Claude Code 對話: + +**設定:** - *「幫我設定 Claude Code 與 Unity 的連接」* - *「我想透過 MCP 將 Unity 專案連接到 Claude Code」* -- *「如何安裝 Coplay MCP for Unity?」* -- *「在 Windows 上設定 Unity MCP」* - -Claude Code 會自動載入此 Skill 並引導您完成整個流程。 -### 執行驗證腳本 +**操作:** -設定完成後,您可以驗證一切是否就緒: +- *「建立一個叫 GameLevel 的新場景」* +- *「在位置 (0, 2, 0) 新增一個紅色方塊」* +- *「建立一個有 WASD 移動功能的 PlayerController 腳本」* +- *「設定標準專案資料夾結構」* +- *「檢查 Unity 主控台的錯誤」* -**macOS/Linux:** +**快速原型製作:** -```bash -bash ~/.claude/skills/unity-claude-code-setup/scripts/verify_setup.sh -``` +- *「幫我做一個滾球遊戲原型」* +- *「建立一個基本的 2D 平台遊戲」* +- *「建構一個主選單 UI 系統」* -**Windows(PowerShell):** +**診斷:** -```powershell -. "$env:USERPROFILE\.claude\skills\unity-claude-code-setup\scripts\verify_setup.ps1" -``` +- *「MCP 連線不行,幫我修」* +- *「對我的 Unity 設定執行診斷」* ## 前置需求 | 工具 | 用途 | 安裝方式 | -|------|------|----------| +|------|-------------|---------| | Claude Code | 兩種路徑皆需 | `curl -fsSL https://claude.ai/install.sh \| bash`(macOS/Linux)或 `irm https://claude.ai/install.ps1 \| iex`(Windows) | | Unity 6+ | 路徑 A | [unity.com](https://unity.com/download) | | Unity 2022+ | 路徑 B | [unity.com](https://unity.com/download) | -| Python ≥ 3.11 | 僅路徑 B | [python.org](https://www.python.org/downloads/) | +| Python >= 3.11 | 僅路徑 B | [python.org](https://www.python.org/downloads/) | | Git for Windows | 僅 Windows | [git-scm.com](https://git-scm.com/download/win) | ## 重要資源 @@ -101,7 +147,8 @@ bash ~/.claude/skills/unity-claude-code-setup/scripts/verify_setup.sh ## 貢獻 -歡迎提交 PR!如果您發現某個步驟已過時,或想新增對 Linux 或其他 MCP 客戶端(Cursor、Windsurf 等)的支援,歡迎開啟 issue 或提交 pull request。 +歡迎提交 PR!如果您發現某個步驟已過時,或想新增對 Linux 或其他 MCP +客戶端(Cursor、Windsurf 等)的支援,歡迎開啟 issue 或提交 pull request。 ## 授權條款 diff --git a/i18n/zh-TW/SKILL.md b/i18n/zh-TW/SKILL.md index ecfa940..19a4ead 100644 --- a/i18n/zh-TW/SKILL.md +++ b/i18n/zh-TW/SKILL.md @@ -1,211 +1,365 @@ --- -name: unity-claude-code-setup +name: unity-claude-code-assistant description: > - 逐步指南:安裝 Claude Code,透過 MCP(Model Context Protocol)將其連接至 - Unity Editor,並驗證整合是否正常運作。涵蓋 Unity 官方 MCP - (com.unity.ai.assistant)及社群 Coplay MCP。支援 Windows 和 macOS。 - 當使用者提及設定 Claude Code 與 Unity 的連接、將 AI 助理連接至 Unity Editor、 - 安裝 Unity MCP、設定 Coplay MCP,或想透過 Claude Code 以自然語言控制 Unity - 場景、GameObject、資源或腳本時,請使用此 Skill。當使用者詢問 AI 輔助 Unity - 開發的前置需求、Claude Code + Unity 連線疑難排解,或比較 Unity MCP 與 - Coplay MCP 時,也請觸發此 Skill。 + Complete Unity AI development assistant. Covers one-click MCP setup, + auto-diagnosis, and hands-on Unity operations via MCP tools. + Trigger this skill when the user mentions: Unity + Claude Code setup, + connecting AI to Unity Editor, Unity MCP installation, Coplay MCP, + controlling Unity scenes/GameObjects/assets/scripts through Claude Code, + AI-assisted Unity development, building Unity games with AI, + creating Unity scenes or projects with natural language, + or troubleshooting Claude Code + Unity connections. --- -# Unity + Claude Code + MCP 設定指南 +# Unity + Claude Code — AI 開發助理 -此 Skill 將引導您透過 MCP 將 Claude Code 連接至 Unity Editor,讓您能以自然語言控制場景、資源、腳本等。 - -有**兩種主要路徑**,請根據使用者的情況選擇: - -| 路徑 | 適用時機 | -|------|----------| -| **路徑 A – Unity 官方 MCP** | Unity 6+ 搭配 `com.unity.ai.assistant` 套件。由 Unity 官方支援。 | -| **路徑 B – Coplay MCP(社群版)** | Unity 2022+。工具更多、迭代更快、社群驅動。 | - -如果使用者不確定,請詢問其 Unity 版本。Unity 6+ 使用者可選擇任一路徑;Unity 2022–2023 使用者應使用路徑 B。 +你是透過 MCP 連接至 Unity Editor 的 Unity 開發助理。 +此技能涵蓋**設定**、**自動診斷**及**直接 Unity 操作**。 --- -## 共同前置需求 - -在使用任一路徑之前,請確保以下條件已就緒: +## 1. 快速設定(一鍵安裝) -### 1. 安裝 Claude Code - -Claude Code 需要付費的 Anthropic 方案(Pro、Max、Team 或 Enterprise)。 +若 MCP 連線尚未設定,請使用自動設定腳本: **macOS / Linux:** ```bash -curl -fsSL https://claude.ai/install.sh | bash +bash auto_setup.sh --auto # 自動偵測最佳路徑 +bash auto_setup.sh --path coplay # 強制使用 Coplay MCP +bash auto_setup.sh --path unity # 強制使用 Unity 官方 MCP ``` **Windows(PowerShell):** ```powershell -irm https://claude.ai/install.ps1 | iex +.\auto_setup.ps1 -Auto # 自動偵測最佳路徑 +.\auto_setup.ps1 -Path coplay # 強制使用 Coplay MCP +.\auto_setup.ps1 -Path unity # 強制使用 Unity 官方 MCP ``` -> Windows 還需要安裝 **Git for Windows**。 +**選項:** -**驗證:** +- `--force` / `-Force` — 移除現有設定後重新新增 +- `--timeout ` / `-Timeout ` — 自訂逾時時間(預設:720000) -```bash -claude --version -``` +### 路徑 A vs 路徑 B -首次啟動後,執行 `claude` 並按照瀏覽器提示進行身份驗證。 +| | 路徑 A — Unity 官方 MCP | 路徑 B — Coplay MCP | +|---|---|---| +| 套件 | `com.unity.ai.assistant` | `coplay-mcp-server` | +| Unity | 6+ | 2022+ | +| 工具 | 較少,官方支援 | 更多工具,社群驅動 | +| 設定 | Relay 二進位檔 + 核准連線 | Python 3.11 + uvx | -### 2. 確認 Unity 已安裝 - -- 路徑 A 需要 **Unity 6(6000.0)** 或更新版本。 -- 路徑 B 需要 **Unity 2022** 或更新版本。 +若使用者不確定,請詢問其 Unity 版本。Unity 6+ → 兩種路徑皆可。Unity 2022–2023 → 路徑 B。 --- -## 路徑 A – Unity 官方 MCP +## 2. 手動設定 -### A1. 安裝 AI Assistant 套件 +僅在自動設定腳本失敗時使用。 -在 Unity 中,前往 **Window > Package Manager**,點選 **+**,選擇 -**Add package by name**,然後輸入: +### 共同前置需求 -```text -com.unity.ai.assistant -``` +1. **Claude Code** — 需要付費 Anthropic 方案 -### A2. 啟動 Unity Bridge + ```bash + # macOS/Linux + curl -fsSL https://claude.ai/install.sh | bash + # Windows + irm https://claude.ai/install.ps1 | iex + ``` + +2. **Unity** — 路徑 A 需要 Unity 6+,路徑 B 需要 Unity 2022+ -1. 前往 **Edit > Project Settings > AI > Unity MCP**。 -2. 確認 **Unity Bridge** 狀態顯示為 **Running**(綠色)。 -3. 如果顯示 **Stopped**,請點選 **Start**。 +### 路徑 A — Unity 官方 MCP -relay binary 會自動安裝至 `~/.unity/relay/`。 +1. 透過 Package Manager 安裝 `com.unity.ai.assistant` +2. Edit > Project Settings > AI > Unity MCP → 確認 Bridge 為 **Running** +3. 設定 Claude Code: -### A3. 設定 Claude Code + ```bash + claude mcp add unity-mcp -- --mcp + ``` -**選項 1 – 自動設定(建議):** -在 Unity 的 **Project Settings > AI > Unity MCP > Integrations** 中,找到 -**Claude Code** 並點選 **Configure**。 + | 平台 | Relay 路徑 | + |----------|-----------| + | macOS ARM | `~/.unity/relay/relay_mac_arm64.app/Contents/MacOS/relay_mac_arm64` | + | macOS Intel | `~/.unity/relay/relay_mac_x64.app/Contents/MacOS/relay_mac_x64` | + | Windows | `%USERPROFILE%\.unity\relay\relay_win.exe` | -**選項 2 – 手動設定:** +4. 在 Unity 中:核准待處理的連線 -在終端機中執行: +### 路徑 B — Coplay MCP + +1. 安裝 Python >= 3.11 +2. 在 Unity 中:透過 git URL 新增套件 `https://github.com/CoplayDev/unity-plugin.git#beta` +3. 設定 Claude Code: + + ```bash + claude mcp add --scope user --transport stdio coplay-mcp \ + --env MCP_TOOL_TIMEOUT=720000 \ + -- uvx --python ">=3.11" coplay-mcp-server@1.5.5 + ``` + +--- + +## 3. 自動診斷 + +當使用者回報連線問題或某些功能無法運作時,請依照以下診斷順序進行: + +### 步驟 1 — 檢查 MCP 設定 ```bash -claude mcp add unity-mcp -- --mcp +claude mcp list ``` -請將 `` 替換為您平台對應的路徑: +確認目標 MCP 伺服器(unity-mcp 或 coplay-mcp)在列表中。 -| 平台 | Relay 路徑 | -|------|-----------| -| macOS(Apple Silicon) | `~/.unity/relay/relay_mac_arm64.app/Contents/MacOS/relay_mac_arm64` | -| macOS(Intel) | `~/.unity/relay/relay_mac_x64.app/Contents/MacOS/relay_mac_x64` | -| Windows | `%USERPROFILE%\.unity\relay\relay_win.exe` | +### 步驟 2 — 測試 MCP 連線 -### A4. 核准連線 +嘗試簡單的工具呼叫: -1. 回到 Unity:**Edit > Project Settings > AI > Unity MCP**。 -2. 在 **Pending Connections** 底下,檢視並點選 **Accept**。 +- **Coplay:** `list_editors` — 應返回已開啟的 Unity 執行個體 +- **Unity 官方:** `Unity_ReadConsole` — 應返回主控台訊息 -先前已核准的客戶端會自動重新連線。 +### 步驟 3 — 常見故障模式 -### A5. 測試 +| 症狀 | 可能原因 | 修復方式 | +|---------|-------------|-----| +| MCP 不在列表中 | 尚未設定 | 執行 `auto_setup.sh --auto` | +| 持續顯示「connecting」 | 伺服器未執行 | 重啟 Claude Code;確認 Unity 已開啟 | +| 連線遭拒 | Unity Bridge 已停止 | Project Settings > AI > Unity MCP > Start | +| 逾時錯誤 | 操作太慢 | 將 `MCP_TOOL_TIMEOUT` 增加至 1800000 | +| "python not found" | Python < 3.11 或未安裝 | 安裝 Python >= 3.11 | +| "uvx not found" | uv 未安裝 | `pip install uv` | +| 工具呼叫失敗 | 錯誤的工具名稱 | 執行 `list available MCP tools` 以確認正確名稱 | +| macOS PATH 問題 | 從 Finder 啟動 Unity | 從終端機啟動 Unity Hub:`open -a "Unity Hub"` | -在 Claude Code 中嘗試: +### 步驟 4 — 完全重置 -```text -Read the Unity console messages and summarize any warnings or errors. +若所有方法都無效,請移除並重新新增: + +```bash +claude mcp remove coplay-mcp # 或 unity-mcp +bash auto_setup.sh --path coplay --force ``` -如果 Claude 能呼叫 `Unity_ReadConsole`,表示設定已完成。 +更多詳細資訊請參閱 `troubleshooting.md`。 --- -## 路徑 B – Coplay MCP(社群版) +## 4. Unity 操作 — 如何使用 MCP 工具 -### B1. 安裝 Python 3.11+ +當 MCP 連線處於活躍狀態時,你可以直接控制 Unity。 +完整工具參考及程式碼範本請參閱 `unity_operations.md`。 -Coplay 的 MCP 伺服器需要 Python ≥ 3.11。 +### 核心原則 -**驗證:** +1. **先探索工具。** 在每次工作階段開始時,列出可用的 MCP + 工具以了解支援哪些操作。 +2. **複雜作業請使用 run_code / ExecuteCode。** 當沒有專用工具時, + 撰寫 C# 程式碼並在編輯器中直接執行。 +3. **每次操作後進行驗證。** 建立或修改物件後, + 檢查主控台和階層面板。 +4. **批次處理操作。** 對於多個物件,撰寫一個 C# 腳本, + 而非重複呼叫工具。 -```bash -python3 --version # macOS/Linux -python --version # Windows +### 場景管理 + +**建立新場景:** + +```text +1. execute_menu_item("File/New Scene") +2. 透過 run_code 儲存: + EditorSceneManager.SaveScene( + SceneManager.GetActiveScene(), "Assets/Scenes/.unity"); ``` -如果尚未安裝: +**取得場景內容:** -- macOS:`brew install python@3.11` -- Windows:從 下載 +```text +get_scene_hierarchy → 返回完整物件樹 +``` -### B2. 安裝 Coplay Unity 套件 +**儲存場景:** -1. 開啟您的 Unity 專案。 -2. **Window > Package Manager > + > Add package from git URL** -3. 輸入: +```text +execute_menu_item("File/Save") +``` - ```text - https://github.com/CoplayDev/unity-plugin.git#beta - ``` +### GameObject 操作 + +**建立基本形狀(Cube、Sphere、Capsule、Plane、Cylinder):** -4. 確認 Coplay 在 Editor 中已啟用且正在運行。 +```text +create_primitive("Cube", name="MyCube") +set_component_property("MyCube", "Transform", "position", {x:0, y:1, z:0}) +``` -### B3. 將 Coplay MCP 新增至 Claude Code +**建立階層結構:** -```bash -claude mcp add \ - --scope user \ - --transport stdio \ - coplay-mcp \ - --env MCP_TOOL_TIMEOUT=720000 \ - -- uvx --python ">=3.11" coplay-mcp-server@1.5.5 +```text +1. 建立父物件:create_gameobject("Player") +2. 建立子物件並設為 Player 的子項 +3. 設定每個子項的 Transform ``` -> 在 Windows 上,請在 PowerShell 中執行此命令。如果找不到 `uvx`,請先透過 -> `pip install uv` 安裝。 +**新增元件:** -### B4. 驗證 +```text +add_component("Player", "Rigidbody") +add_component("Player", "CharacterController") +set_component_property("Player", "Rigidbody", "mass", 2.0) +``` -```bash -claude mcp list +### 腳本開發 + +當使用者要求建立腳本時,產生完整的 C# 檔案並使用 +`create_script` 或 `run_code` 寫入專案: + +```csharp +// 將腳本檔案寫入 Assets/Scripts/ +run_code(@" + System.IO.Directory.CreateDirectory(""Assets/Scripts""); + System.IO.File.WriteAllText(""Assets/Scripts/PlayerController.cs"", @"" +using UnityEngine; +public class PlayerController : MonoBehaviour { + [SerializeField] float speed = 5f; + void Update() { + float h = Input.GetAxis(""Horizontal""); + float v = Input.GetAxis(""Vertical""); + transform.Translate(new Vector3(h, 0, v) * speed * Time.deltaTime); + } +} +""); + AssetDatabase.Refresh(); +"); ``` -您應該會在清單中看到 `coplay-mcp`。 +常見腳本模式(完整範本請參閱 `unity_operations.md`): -### B5. 測試 +- **PlayerController** — 使用 CharacterController 的 WASD 移動 +- **GameManager** — DontDestroyOnLoad 單例模式 +- **HealthBarUI** — 帶色彩漸層的滑桿式 UI +- **CameraFollow** — 帶偏移的平滑追蹤 +- **SceneLoader** — 帶載入畫面的非同步場景切換 -開啟您的 Unity 專案,然後在 Claude Code 中輸入: +### 材質與視覺效果 -```text -List all open Unity editors +```csharp +// 建立並指派帶有顏色的材質 +run_code(@" + var obj = GameObject.Find(""MyCube""); + var mat = new Material(Shader.Find(""Standard"")); + mat.color = Color.red; + obj.GetComponent().material = mat; +"); ``` -接著嘗試: +### 資源結構 + +設定專業的專案結構: + +```csharp +run_code(@" + string[] folders = { + ""Assets/Scripts"", ""Assets/Scenes"", ""Assets/Prefabs"", + ""Assets/Materials"", ""Assets/Textures"", ""Assets/Audio"", + ""Assets/Animations"", ""Assets/Fonts"", ""Assets/Resources"" + }; + foreach (var f in folders) { + var parts = f.Split('/'); + var parent = parts[0]; + for (int i = 1; i < parts.Length; i++) { + var next = parent + ""/"" + parts[i]; + if (!AssetDatabase.IsValidFolder(next)) + AssetDatabase.CreateFolder(parent, parts[i]); + parent = next; + } + } + AssetDatabase.Refresh(); +"); +``` + +### 偵錯 + +**讀取主控台訊息:** ```text -Create a red cube at position (0, 1, 0) in the current Unity scene +get_console_logs 或 Unity_ReadConsole +→ 總結錯誤和警告,建議修復方式 ``` ---- +**尋找遺失的腳本:** -## 疑難排解 +```csharp +run_code(@" + foreach (var go in Resources.FindObjectsOfTypeAll()) { + foreach (var c in go.GetComponents()) { + if (c == null) Debug.LogWarning($""Missing script on: {go.name}""); + } + } +"); +``` -請閱讀 `references/troubleshooting.md` 以瞭解常見問題,包括: +--- -- 找不到 `claude` 命令 -- MCP 伺服器停留在「connecting」狀態 -- Unity 未偵測到 MCP 客戶端 -- macOS 從 Finder 啟動 Unity 時的 PATH 問題 -- 大型操作的逾時錯誤 -- Windows 特有的 PowerShell 問題 +## 5. 快速原型工作流程 + +當使用者希望快速建構某樣東西時,請遵循以下結構化工作流程。 + +### 3D 滾球遊戲 + +1. 建立場景 "GameLevel" +2. 建立地板(Plane,縮放 5x5) +3. 建立玩家(Sphere + Rigidbody,y=0.5) +4. 建立 BallController.cs — 力量驅動的 WASD 移動 +5. 建立收集物品(帶觸發碰撞器的小方塊) +6. 建立 Collectible.cs — OnTriggerEnter → 銷毀 + 加分 +7. 建立 ScoreManager.cs 單例 +8. 建立帶分數文字的 UI Canvas +9. 新增 CameraFollow.cs 進行平滑追蹤 +10. 設定燈光和天空盒 + +### 2D 平台遊戲 + +1. 建立 2D 場景 +2. 建立地面精靈圖 / 瓦片地圖 +3. 建立玩家(精靈圖 + Rigidbody2D + BoxCollider2D) +4. 建立 PlatformController2D.cs — 移動 + 跳躍 + 地面偵測 +5. 在不同高度建立平台 +6. 新增 CameraFollow2D.cs +7. 在平台下方新增死亡區域 +8. 新增分數/生命 UI + +### FPS 原型 + +1. 建立帶有地形或地板的場景 +2. 建立玩家(Capsule + CharacterController + Camera 作為子物件) +3. 建立 FPSController.cs — WASD + 滑鼠視角 +4. 建立簡單障礙物(牆壁、箱子) +5. 新增射擊機制(射線檢測或拋射物) +6. 新增帶生命值的敵方目標 +7. 新增準心 UI 和彈藥計數器 + +### UI 選單系統 + +1. 建立 Canvas(Screen Space - Overlay) +2. 建立標題文字(TextMeshPro) +3. 建立按鈕:Start、Settings、Quit +4. 建立按鈕處理程式的 MainMenuController.cs +5. 建立帶音量滑桿的設定面板 +6. 建立場景切換邏輯 --- -## 設定後建議 +## 6. 設定後建議 -- 在 Unity 專案根目錄執行 `claude /init` 以產生 `CLAUDE.md`,向 Claude Code 描述您的專案慣例。 -- 在 Claude Code 中使用 `@` 符號來參照特定檔案,例如 `@PlayerController.cs`。 -- 若使用 Coplay MCP,如果在長時間操作中遇到逾時錯誤,請增加 `MCP_TOOL_TIMEOUT` 的值(預設為 720000ms = 12 分鐘)。 +- 在 Unity 專案根目錄執行 `claude /init` 以產生描述專案慣例的 `CLAUDE.md`。 +- 在 Claude Code 中使用 `@` 參照檔案:`@PlayerController.cs`。 +- 大型操作請增加 `MCP_TOOL_TIMEOUT`(預設 12 分鐘)。 +- 經常儲存場景 — 透過 `execute_menu_item("File/Save")` 觸發。 +- 對於沒有專用 MCP 工具的操作,使用 `run_code` / `ExecuteCode` + 作為萬用工具。