mcpField
U
unity-script

unity-script

github.com/besty0728開発1.9k84 回インストール今日更新
リポジトリ

unity-script について

unity-script は、Unity の C# スクリプトを管理するスキル群です。コードの作成・確認・リファクタリングに使え、変更後のコンパイル診断も取得できます。

主な機能

  1. 01単体または複数のスクリプト作成
  2. 02スクリプト内容の置換・追記
  3. 03スクリプトの名前変更・移動・削除
  4. 04スクリプトの読み取りと内容検索
  5. 05コンパイル結果の取得

活用シーン

  1. 01Unity プロジェクトへのスクリプト追加
  2. 02複数スクリプトにまたがるコード検索
  3. 03スクリプト内容やファイル配置の変更
  4. 04エラーと発生箇所の確認

MCP 対応

MCP クライアントからこれらのスキルを呼び出し、Unity プロジェクトの C# スクリプトを読み書きし、コンパイル診断を取得できます。

インストール

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

$npx skills add https://github.com/besty0728/unity-skills --skill unity-script

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

reference/
script_append.md
script_create_batch.md
script_create.md
script_delete.md
script_find_in_file.md
script_get_compile_feedback.md
script_get_info.md
script_list.md
script_move.md
script_read.md
script_rename.md
script_replace.md

詳細

トリガー

  • C# コードの作成または編集
  • スクリプト全体の検索
  • ファイル構成のリファクタリング
  • コンパイルエラーの確認
  • C# コードの作成または編集、スクリプト全体の検索、ファイル構成のリファクタリング、コンパイルエラーの確認

Unity スクリプトのスキル

C# スクリプトの作成、編集、移動、調査を行い、コンパイル結果を取得します。パラメーターはスキーマ(includeSchema=true または /skills/schema?names= を推奨)を参照してください。スキーマには分かりにくいパラメーターが記載されています。スキル名から推測してはいけません。実行と dryRun のルールについては、ルートの SKILL.md を参照してください。

動作モード

読み取り専用の SemiAuto スキルは、すべてのモードで直接実行されます:script_read、script_list、script_find_in_file、script_get_info、script_get_compile_feedback。書き込みを行う 7 つのツール(script_create、script_create_batch、script_replace、script_append、script_rename、script_move、script_delete)はすべて MayTriggerReload + RiskLevel:"high" です(.cs ファイルを書き込むとドメインがリロードされ、script_delete は Delete でもあります)。そのため、これらは NeverInSemi です。Approval と Auto のどちらでも MODE_FORBIDDEN が返され、実行できるのは Bypass または Allowlist に該当する場合のみです。これらのツールに対する許可を要求してはいけません → 動作モード。

コンパイルとリロード

  • 書き込みを行うと、毎回すぐに {success, status: "accepted", path, jobId, waitUrl, serverAvailability} が返されます。その後コンパイルが行われ、ドメインのリロード中はサーバーに一時的に接続できなくなります。
  • コンパイル結果は 1 回の呼び出しで取得できます。返された waitUrl(/jobs/<jobId>?wait=90)に対して GET を実行します。例:curl -s --retry 20 --retry-connrefused --retry-all-errors --retry-delay 2 "http://localhost:<port>/jobs/<jobId>?wait=90"。コンパイルが完了すると、ジョブの status は completed になります。コンパイルエラーがある場合は failed となり、診断情報は resultData.compilation(isCompiling、hasErrors、errorCount、errors: [{type, message, file, line}])に含まれます。リロード中は接続が拒否されたり、503 が返されたりすることがあります。同じ URL を再度呼び出してください。waitTimedOut: true の場合は、再び GET を実行してください。
  • script_get_compile_feedback(scriptPath) を呼び出すと、同じ診断情報を必要に応じて取得できます。まずエラーを修正してください。クリーンなコンパイルが完了してからでないと、component_add は新しい MonoBehaviour を検出できません。
  • checkCompile: false を指定すると診断情報が省略されます。diagnosticLimit は診断情報の上限数を指定します(デフォルトは 20)。

共通ルール

  • scriptName はファイル名とクラス名を指定し、.cs とパス区切り文字は含めません。パス(folder、scriptPath、newFolder)はプロジェクト相対で、Assets/ または Packages/ から始まります。フォルダーが存在しない場合は作成されます。既存のファイルが上書きされることはありません(Script already exists)。
  • script_create で content を指定すると、その内容がそのまま書き込まれます(その場合、template / namespaceName は無視され、警告が表示されます)。指定しない場合は、テンプレート(デフォルトは MonoBehaviour。ScriptableObject、Editor、EditorWindow も指定可能。後者 2 つのデフォルトの場所は Assets/Editor)が入力され、namespaceName を指定した場合はその名前空間で囲まれます。これ以外の名前だけを指定すると拒否されます(validValues に有効な 4 つの値が表示されます)。コードを含むテキストは、{CLASS} / {NAMESPACE} を置き換えるリテラルテンプレートとして扱われますが、カスタムクラスには content を使用してください。MonoBehaviour または ScriptableObject がファイルに紐づくのは、クラス名がファイル名と一致する場合のみです。そのような型を宣言しない content を指定すると、警告が表示されます。
  • 新しいスクリプトを 2 つ以上作成する場合は script_create_batch を使用してください。N 回ではなく、ドメインのリロードが 1 回で済みます。

スキルの概要

  • 書き込み:script_create、script_create_batch、script_replace(検索/置換、プレーンテキストまたは正規表現)、script_append(行を挿入)、script_rename(ファイルのみ。内部のクラス名は変更されません)、script_move(移動先フォルダーを作成)、script_delete。
  • 読み取り:script_read、script_list、script_find_in_file(プレーンテキストまたは正規表現、行単位)、script_get_info(クラス、基底クラス、パブリックメンバー)、script_get_compile_feedback。

スキルごとの表と戻り値の形式:reference/<skill_name>.md — スキーマにパラメーターが記載されているため、参照が必要になることはほとんどありません。

使用しないでください(よくある誤った想定):

  • script_edit/script_update は存在しません → 検索と置換には script_replace を使用します
  • script_write は存在しません → 新規ファイルには script_create、既存ファイルの変更には script_replace を使用します

その他:コンパイル済みスクリプトの API 分析には script_analyze(認識)を使用します。

正確なシグネチャ

名前、パラメーター、デフォルト値、必須フラグは、このファイルではなく GET /skills/schema?category=Script(または ?names=a,b)から取得してください。

よくあるエラー

エラー発生条件 → 対処
MISSING_PARAM例:scriptName、pattern、find、newName が不足 → 指定してください。エラー(または dryRun)にすべてのパラメーターが表示されます。
SEMANTIC_INVALIDscriptName/newName にパス区切り文字が含まれる、Assets//Packages/ の外部にあるパス、またはスクリプトがすでに存在する → 名前またはパスを修正するか、既存のファイルを名前変更または移動してください。
TARGET_NOT_FOUNDスクリプト、MonoScript、またはフォルダーが見つからない → script_list/asset_find で正しい scriptPath を探してください。
SKILL_ERRORファイルシステムまたは AssetDatabase での移動/名前変更/削除に失敗 → メッセージを確認して問題を解決し、再試行してください。

トランスポートコード(COMPILING、RATE_LIMIT など)→ エラーコード。

コメント