Open8

Unity + AIコーディングどこまでできる?

torikasyutorikasyu

Windsurf編

  • まずはUnity HubでUniversal 3Dでプロジェクト作成
  • 作成されたフォルダをWindsurfで開く
  • Cascadeにシーンの編集ができるか聞いてみた
  • やっぱりシーンの編集はできない

Unityの外部エディタにできるか?

  • WindsurfはVSCodeのフォークなので、MS純正のUnityや.NETのプラグインの利用ができない
  • なので、別途純正のVSCodeを起動してデバッグする必要がある
  • WindsurfとVSCodeの2つのエディタで編集するのはちょっと微妙な気もするので、いったん別の方法を試す
torikasyutorikasyu

Claude Code編

  • Claude CodeはAPIキーが必要だが、Claude DesktopからMCP経由で呼び出すとキーがなくても動作する
  • Claude DesktopでMCPの設定をした。ファイル操作をするためのfilesystemでリポジトリのディレクトリを追加している
  • voltaを使っている場合、フルパスでの指定が必要
{
  "mcpServers": {
    "filesystem": {
      "command": "/Users/hiroki/.volta/bin/npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/hiroki/Desktop",
        "/Users/hiroki/Downloads",
        "/Users/hiroki/repos-claude-code"
      ]
    },
    "claude_code": {
      "command": "/Users/hiroki/.volta/bin/claude",
      "args": ["mcp", "serve"],
      "env": {}
    }
  }
}
  • その上で、シーンの編集ができるか聞いてみた
  • WindsurfにしろClaude Codeにしろ、シーンの編集は得意とはしていないので、Unity Editorで編集することになる
  • デバッグにはVSCodeが必要。Claude Code + VSCodeを併用するのが筋が良さそう。
torikasyutorikasyu

Unity MCP編

使い分けはどうする?

  • Claude Desktopから、Unity MCPとClaude Codeの両方を使うことができる
  • どちらを使ったほうがいいか聞いてみた
  • 両方がいいらしい
torikasyutorikasyu

作ってみる

  • Claude Desktopを起点にUnity MCPとClaude Codeを使う前提で進める

仕様書の作成

いよいよ実装

  • 仕様書をmdファイルに保存して、新しいチャットを開始
  • 「フェーズ1を実装して」

スクリプトエラー発生

Assets/Scripts/BallController.cs(17,13): error CS0246: The type or namespace name 'InputSystem_Actions' could not be found (are you missing a using directive or an assembly reference?)

  • エラーを指摘したら直してくれで、実行できた
torikasyutorikasyu

つづき

  • 「フェーズ2を実装して」
  • 同様に実装は終わるが、やはりエラーが発生。エラー修正中に、Claude Desktopの1スレッドの会話量の限界に達してしまい、新しい会話をスタート。すると、プロジェクトの最初から説明をしなければならず、かなり面倒
  • コンポーネントの削除でDestroyImmidiateを利用すべきところをDestoryを使っていたのでランタイムエラー
  • 手動でもEditorでタグなどを修正してやっと動いた
torikasyutorikasyu

ここまでの感想

  • Claude DesktopからMCP経由でClaude Code / Unityを操作する方法はある程度うまくいくが、ソースコードの行単位でAIに指示したいときなどは大変不便なので、あまり実用的ではなかった
  • 次はVSCode + GitHub Copilotを使って、MCP経由でUnityを操作する形式を試してみる
torikasyutorikasyu

VSCode + Unity MCP編

  • Unityの外部EditorとしてVSCodeを利用(Unityプラグインなど入れてデバッグ可能状態にする)
  • VSCodeのMCP設定でUnity MCPを入れて、Unityを操作できるようにする
  • GitHub CopilotのAgent Modeで指示を出すと、下記の動きになる
    • Unityのシーンなどに関する操作ならUnity MCP経由
    • スクリプトに関する操作ならVSCode内のスクリプトを直接参照
  • これが一番使いやすい
torikasyutorikasyu

まとめ

  • GitHub Copilotを契約して、VSCode + Unity MCPを使うのがベターな選択肢
    • 理由はMS純正のUnityプラグインが使えるから
    • なのでRoo Codeなどでも良いが、Copilotは定額で使えるので安心感がある
  • ただし、Unity MCPの使い所は限られる
    • UnityはSceneに対しての変更の差分がわかりにくため、Unity MCPで下手に変更されたくない
    • 変更せずに質問や調査には十分使えそう