mcpField
U
unity-compile-fixer

unity-compile-fixer

github.com/dev-gom開発9773 回インストール41 週間前に更新
リポジトリ

unity-compile-fixer について

Unity の C# コンパイルエラーを診断し、修正案を提示するスキルです。OmniSharp の診断とエラーパターンデータベースを使って分析し、編集前にユーザーの承認を求めます。

主な機能

  1. 01VSCode の C# 診断を収集
  2. 02CS エラーを既知パターンと照合
  3. 03コード文脈に沿った修正案を提示
  4. 04編集前に承認を取得
  5. 05.meta の競合を確認して再検証

活用シーン

  1. 01Unity スクリプトのコンパイル失敗を診断
  2. 02CS コンパイルエラーの原因を調査
  3. 03適用前にコード変更案を確認
  4. 04修正後に Unity の .meta ファイルを確認

MCP 対応

mcp__ide__getDiagnostics ツールで VSCode の診断を収集します。MCP サーバーであるとは記載されていません。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/dev-gom/claude-code-marketplace --skill unity-compile-fixer

インストール後、Claude Code で/unity-compile-fixerを入力して読み込まれたか確認します。

同梱ファイルreferences/error-patterns.jsonscripts/analyze-diagnostics.js

詳細

Unity コンパイルエラー修正ツール

概要

このスキルは、VSCode の診断システムを活用して、Unity の C# コンパイルエラーを自動的に検出し、解決します。OmniSharp C# 言語サーバーからリアルタイムのエラーを収集し、厳選された一般的な Unity の問題データベースと照らし合わせてエラーパターンを分析します。また、修正を適用する前に、状況に応じた解決策を提案し、ユーザーの承認を求めます。

このスキルを使用するタイミング

次のような場合に、このスキルを使用してください。

  • Unity プロジェクトで VSCode に C# コンパイルエラーが表示される場合
  • Unity コンパイラーエラー(CS* エラーコード)の根本原因を診断する必要がある場合
  • Unity の一般的なスクリプトの問題に対する自動修正案が必要な場合
  • バージョン管理システム(Git、Unity Collaborate、Plastic SCM)と連携する Unity プロジェクトで作業している場合
  • Unity の .meta ファイルの競合に対処する必要がある場合

ユーザーからの依頼の例:

  • 「Unity のコンパイルエラーを確認して、修正を手伝ってください」
  • 「Unity プロジェクトにコンパイラーエラーがあります。原因を診断して修正できますか?」
  • 「Unity のスクリプトがコンパイルされません。何が問題ですか?」
  • 「Unity プロジェクトの C# エラーを修正してください」

ワークフロー

このスキルが呼び出されたときは、次のワークフローに従ってください。

1. コンパイルエラーを検出する

mcp__ide__getDiagnostics ツールを使用して、VSCode からエラーを収集します。

// Collect all project diagnostics
mcp__ide__getDiagnostics()

// Or target specific Unity script files
mcp__ide__getDiagnostics({ uri: "file:///path/to/PlayerController.cs" })

診断結果を絞り込み、Unity に関連するエラーに注目します。

  • 重大度:severity: "Error" のエラーのみ処理します(警告は無視します)
  • ソース:source: "csharp" のみ処理します(OmniSharp の C# 診断)
  • エラーコード:CS* コンパイラーエラーコード(例:CS0246、CS0029、CS1061)に注目します
2. エラーパターンを分析する

検出された各エラーについて、次の処理を行います。

  1. エラー情報を抽出する:

    • uri と range からファイルパスと行番号を取得します
    • message からエラーコード(例:「CS0246」)を取得します
    • エラーメッセージ全文を取得します
  2. エラーパターンデータベースと照合する:

    • references/error-patterns.json を読み込みます
    • エラーコードのエントリ(例:CS0246)を検索します
    • 一般的な原因と解決策を取得します
  3. 影響を受けるファイルのコンテキストを読み取る:

    • Read ツールを使用して、エラーのあるファイルを読み込みます
    • 前後のコードを調べてコンテキストを確認します
    • 不足しているインポート、誤った型、API の誤用を特定します
3. 解決策を提案する

各エラーに対して、構造化された修正案を作成します。

**Error**: CS0246 at PlayerController.cs:45
**Message**: The type or namespace name 'Rigidbody' could not be found

**Analysis**:
- Missing using directive for UnityEngine namespace
- Common Unity API usage pattern

**Proposed Solution**:
Add `using UnityEngine;` at the top of PlayerController.cs

**Changes Required**:
- File: Assets/Scripts/PlayerController.cs
- Action: Insert using directive at line 1
4. ユーザーの確認を得る

修正を適用する前に、次の処理を行います。

  1. 提案するすべての解決策を、明確で構造化された形式で提示します

  2. AskUserQuestion ツールを使用して、ユーザーの承認を得ます。

    • 各エラーと提案する修正を一覧表示します
    • すべてを承認する、特定の修正を選択する、またはキャンセルする選択肢を提示します
  3. 明示的な確認を待ちます。修正を自動的に適用してはいけません

5. 承認された修正を適用する

承認された修正ごとに、次の処理を行います。

  1. Edit ツールを使用して、影響を受けるファイルを変更します
  2. コードの書式と既存の構造を維持します
  3. 変更は最小限に抑え、特定のエラーのみを修正します

例:

Edit({
  file_path: "Assets/Scripts/PlayerController.cs",
  old_string: "public class PlayerController : MonoBehaviour",
  new_string: "using UnityEngine;\n\npublic class PlayerController : MonoBehaviour"
})
6. バージョン管理の状態を確認する

修正を適用した後、次の処理を行います。

  1. .meta ファイルの競合を確認する:

    • Grep を使用して Unity の .meta ファイルを検索します
    • スクリプトの GUID が変更されていないことを確認します
    • マージ競合マーカー(<<<<<<、======、>>>>>>)を確認します
  2. VCS の状態を報告する:

    • 変更されたファイルを一覧表示します
    • .meta ファイルに問題があれば警告します
    • 必要に応じて git の操作を提案します
7. コンパイルを再検証する

修正を適用した後、次の処理を行います。

  1. mcp__ide__getDiagnostics() を使用して診断を再実行します
  2. 修正前と修正後のエラー数を比較します
  3. 結果をユーザーに報告します。
    • 修正されたエラー数
    • 残っているエラー(ある場合)
    • 成功率

エラーパターンデータベース

このスキルでは、エラー分析に references/error-patterns.json を使用します。このデータベースには、次の情報が含まれています。

  • エラーコード:CS* コンパイラーエラーコード
  • 説明:人が読みやすい説明
  • 一般的な原因:Unity でこのエラーが発生する典型的な理由
  • 解決策:段階的な修正手順
  • Unity 固有の注意事項:Unity API に関する考慮事項

エラーを分析するには、データベースを読み込み、エラーコードを照合します。

Read({ file_path: "references/error-patterns.json" })
// Parse JSON and find errorCode entry

分析スクリプト

このスキルには、複雑なエラー分析に使用する scripts/ 内の Node.js スクリプトが含まれています。

scripts/analyze-diagnostics.js

VSCode の診断 JSON 出力を処理し、Unity に関連するエラーを抽出します。

使用方法:

node scripts/analyze-diagnostics.js <diagnostics-json-file>

出力:

  • フィルタリングされた Unity C# コンパイルエラーの一覧
  • 種類別のエラー分類(インポート不足、型エラー、API の問題)
  • 重大度とファイルの場所に関する情報

このスクリプトは単独で実行することも、詳細な分析が必要な場合に SKILL.md のワークフローから呼び出すこともできます。

ベストプラクティス

このスキルを使用する際は、次の点に従ってください。

  1. まずプロジェクト全体の診断を実行する - パラメーターなしで mcp__ide__getDiagnostics() を使用し、エラーの全体像を把握します
  2. 重大度と依存関係に基づいてエラーに優先順位を付ける - 下流のエラーに対処する前に、基盤となるエラー(インポート不足)を修正します
  3. 関連する修正をまとめて行う - 同じファイルのエラーをまとめ、効率的に編集します
  4. VCS のステータスを必ず確認する - Unity の .meta ファイルはバージョン管理に不可欠です
  5. 修正後に再検証する - エラーが実際に解消されたことを確認します

リソース

scripts/analyze-diagnostics.js

VSCode の診断を処理し、Unity 固有の C# エラーをフィルタリングする Node.js スクリプトです。

references/error-patterns.json

Unity C# コンパイルでよく発生するエラーとその解決策、および Unity 固有のガイダンスをまとめたデータベースです。

コメント