# 更新の手順 いま入っている版から新しい版へ上げる手順を、版ごとに説明します。[README に戻る](../README.md) CLI と Unity パッケージは 1 つの版として公開され、リリースは両方が揃っていないと止まります。それでも手元では簡単にずれるので、上げるときは 2 つ揃えてください。いま何が入っているかは `isuzu-unity-cli doctor` が表示します。 ## 4.3.0 以降から ```sh isuzu-unity-cli update ``` CLI を入れ替えてから、開いている Editor のパッケージを同じ版に揃えます。CLI の導入に失敗した場合、パッケージは書き換えません。 winget や `dotnet tool` で CLI を入れた場合、`update` は CLI を置き換えません。その道具の更新コマンドを表示するので、そちらで更新してから `update` をもう一度実行してください。 ## 4.2.0 から 4.2.0 の CLI には `update` がありません。4.3.0 で追加したものです。CLI を先に入れ替えてください。 ```sh isuzu-unity-cli upgrade # CLI を新しい版にする isuzu-unity-cli doctor --fix # エージェント用スキルを新しい版のものにする isuzu-unity-cli update # 各プロジェクトのパッケージを揃える ``` `doctor --fix` を挟むのは、4.2.0 の `upgrade` が古い実行ファイルのままスキルを確認するためです。4.3.2 以降の `upgrade` は、入れ替えた実行ファイルの側で確認するので、この手順は要りません。 4.3.0 に、MCP クライアントから見える変更がいくつかあります。 - 応答がツールの上限を超えると、送らずに `isError` で断ります。 - 応答から `structuredContent` が無くなりました。同じ JSON がテキストに入っています。 - `capture_screenshot`、`reflect_read`、`gpu_readback` から読み取り専用の注釈を外しました。名前に反して副作用があるためです。`reflect_read` は getter を実行するので、`Renderer.material` を読むと共有マテリアルの複製ができます。`capture_screenshot` はウィンドウを手前に出し、`gpu_readback` は転送が終わるまでメインスレッドを止めます。読み取り専用と宣言している間、クライアントはこれらを確認なしに実行し、勝手に再試行することがありました。 - ツールが宣言していない引数は、無視せずに断ります。 - `asset_export_package` の保存先が `file` から `destination` になりました。 - `console_read_logs` は `stack_trace` を指定しない限りスタックトレースを返しません。 - CLI は、知らないオプションと値の無いオプションを終了コード 2 で断ります。同じオプションを 2 回書くと配列として送ります。 ## 4.1.x 以前から 手順は 4.2.0 からと同じです。上に加えて、4.2.0 と 4.1.0 の変更が入ります。 - `project_assemblies` の戻り値から `fullName` が無くなりました。 - `scene_browse_hierarchy` のノードは `id` を返さず、既定値のキーを省きます。 - CLI は、出力をパイプやリダイレクトに渡すとき JSON を整形しません。 ## v3 から CLI の名前もインストール方法も変わっています。[v3 からの移行](migration-v3.md)を参照してください。 ## パッケージだけを更新する CLI を使わずに Unity パッケージだけを上げる場合は、導入した経路によって手順が変わります。 | 導入の経路 | 手順 | |---|---| | git URL | Package Manager で、URL に `#v<版>` を付けて入れ直します | | VCC / ALCOM | 一覧から新しい版を選びます | | `Packages/` 直下の実体 | 中身をリリースの zip で置き換えます。Unity はそちらを読み、manifest を見ません | | `file:` の作業コピー | git で更新します | ## 更新できたか確かめる ```sh isuzu-unity-cli doctor ``` CLI とパッケージの版、導入の経路、版がずれているかどうかを表示します。ずれていると、どちらを動かせばよいかも示します。