unity-compile-fixer について
Unity の C# コンパイルエラーを診断し、修正案を提示するスキルです。OmniSharp の診断とエラーパターンデータベースを使って分析し、編集前にユーザーの承認を求めます。
主な機能
- 01VSCode の C# 診断を収集
- 02CS エラーを既知パターンと照合
- 03コード文脈に沿った修正案を提示
- 04編集前に承認を取得
- 05.meta の競合を確認して再検証
活用シーン
- 01Unity スクリプトのコンパイル失敗を診断
- 02CS コンパイルエラーの原因を調査
- 03適用前にコード変更案を確認
- 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. エラーパターンを分析する
検出された各エラーについて、次の処理を行います。
-
エラー情報を抽出する:
uriとrangeからファイルパスと行番号を取得しますmessageからエラーコード(例:「CS0246」)を取得します- エラーメッセージ全文を取得します
-
エラーパターンデータベースと照合する:
references/error-patterns.jsonを読み込みます- エラーコードのエントリ(例:CS0246)を検索します
- 一般的な原因と解決策を取得します
-
影響を受けるファイルのコンテキストを読み取る:
- 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. ユーザーの確認を得る
修正を適用する前に、次の処理を行います。
-
提案するすべての解決策を、明確で構造化された形式で提示します
-
AskUserQuestion ツールを使用して、ユーザーの承認を得ます。
- 各エラーと提案する修正を一覧表示します
- すべてを承認する、特定の修正を選択する、またはキャンセルする選択肢を提示します
-
明示的な確認を待ちます。修正を自動的に適用してはいけません
5. 承認された修正を適用する
承認された修正ごとに、次の処理を行います。
- Edit ツールを使用して、影響を受けるファイルを変更します
- コードの書式と既存の構造を維持します
- 変更は最小限に抑え、特定のエラーのみを修正します
例:
Edit({
file_path: "Assets/Scripts/PlayerController.cs",
old_string: "public class PlayerController : MonoBehaviour",
new_string: "using UnityEngine;\n\npublic class PlayerController : MonoBehaviour"
})
6. バージョン管理の状態を確認する
修正を適用した後、次の処理を行います。
-
.meta ファイルの競合を確認する:
- Grep を使用して Unity の .meta ファイルを検索します
- スクリプトの GUID が変更されていないことを確認します
- マージ競合マーカー(<<<<<<、======、>>>>>>)を確認します
-
VCS の状態を報告する:
- 変更されたファイルを一覧表示します
- .meta ファイルに問題があれば警告します
- 必要に応じて git の操作を提案します
7. コンパイルを再検証する
修正を適用した後、次の処理を行います。
mcp__ide__getDiagnostics()を使用して診断を再実行します- 修正前と修正後のエラー数を比較します
- 結果をユーザーに報告します。
- 修正されたエラー数
- 残っているエラー(ある場合)
- 成功率
エラーパターンデータベース
このスキルでは、エラー分析に 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 のワークフローから呼び出すこともできます。
ベストプラクティス
このスキルを使用する際は、次の点に従ってください。
- まずプロジェクト全体の診断を実行する - パラメーターなしで
mcp__ide__getDiagnostics()を使用し、エラーの全体像を把握します - 重大度と依存関係に基づいてエラーに優先順位を付ける - 下流のエラーに対処する前に、基盤となるエラー(インポート不足)を修正します
- 関連する修正をまとめて行う - 同じファイルのエラーをまとめ、効率的に編集します
- VCS のステータスを必ず確認する - Unity の .meta ファイルはバージョン管理に不可欠です
- 修正後に再検証する - エラーが実際に解消されたことを確認します
リソース
scripts/analyze-diagnostics.js
VSCode の診断を処理し、Unity 固有の C# エラーをフィルタリングする Node.js スクリプトです。
references/error-patterns.json
Unity C# コンパイルでよく発生するエラーとその解決策、および Unity 固有のガイダンスをまとめたデータベースです。