【Unity】バージョンアップ完全ガイド(移行手順・エラー対応・容量節約まで)
はじめに
主旨
前回『【Unity】人型モデルを動かす(Blend Tree・CharacterController・Input Systemで作るTPS移動の基礎)』の続きです。
Unity 6.4(6000.4)上で、VRMアバターをBlend Tree / CharacterController / Input Systemで動かすところまで作りましたが、先日『Unity 6.5』が出たので移行してみたいと思います。

……と、当初は「バージョンを上げて終わり」のサクッとした内容になる予定でした。ところが実際にやってみると「UniVRMのコンパイルエラー」「.unitypackage方式インストールの落とし穴」「謎のエラーコード『120.003』」と、つまずきの連続。本記事は、それらを一つずつ解決しながらたどり着いた「バージョンアップの実録+手順書」となります。

また、不要なキャッシュファイルを削除するにあたり、意外な事実も分かりました。実は、Unity Hubからアンインストールしても、キャッシュや設定ファイルは自動では削除されません。「アンインストールしたのに容量が戻らない」という現象の正体と、安全に削除できるファイルの一覧も、後半の章でまとめています。
💡 Unity 6.5を例としますが、手順自体はどのバージョンアップにも共通して使える内容です。今後6.6や6.7、あるいはそれ以降のバージョンに上げる際も、この記事の流れをそのまま応用していただけます。
👩💻 こんな方に向けた内容です
・Unityの新バージョンへの移行手順について知りたい方。
🛠️ 動作検証環境
・macOS Tahoe 26.5.1
・Unity Hub 3.19.5
・Unity 6.4(6000.4.5f1)→ Unity 6.5(6000.5.5f1)
本記事の構成

第1章「Unity 6.5 (6000.5)」
6.5の主な変更点と、「Supported版」というリリース形態について。移行するかどうかの判断材料をここで押さえます。第2章「移行前の準備(バックアップ)」
最重要の章です。「フォルダごとコピー」と「UVCSブランチ」の2つの方法と、それぞれの注意点(Libraryフォルダ、.plasticフォルダ)を解説します。第3章「Unity Hubで新バージョンをインストールする」
実際の移行作業です。セーフモードへの対処、そして今回最大のつまずきだった「UniVRMのコンパイルエラー」と「.unitypackage方式からPackage Manager経由方式への切り替え」をここで扱います。第4章「コード『120.003』対策」
移行作業中に遭遇した認証エラーの対処法です。第5章「古いバージョンのアンインストール」 / 第6章「不要なキャッシュファイルを削除する」
移行完了後の後片付けです。1バージョンあたり8〜15GBの容量を取り戻します。
Unity 6.5 (6000.5)
主な変更点

Unity6.5は、機能追加というより安定化がメインのアップデートです。
URPを使っている場合は大きな影響はなく、2Dゲームを作っている場合は物理演算まわりを一度チェックしておくと良いかと思います。
また、iOSビルドを予定している場合は、発熱時にフレームレートが自動調整される点を意識しておきましょう。
Supported(サポート版)
まず、6.5はLTSではなく、「Supported(サポート版)リリース」です。次のLTS(6.7)へ向かうための、繋ぎのバージョンとなります。

Unity6.5なら、次のバージョン(6.6)が正式リリースされた時点(時期未定:秋〜年末頃予想)で、サポート期間は終了します。
Supported版は、最新機能やパフォーマンス改善をすぐに試せます。ただし、長期間同じバージョンで固定して運用したい場合には不向きです。

企業であれば「LTS(長期サポート版)」が無難ですが、やはりインディーズであれば『Supported(サポート版)』で最新機能をどんどん試していけるのが強みではないのでしょうか。
移行前の準備(バックアップ)
方法その1:フォルダごとコピー
Unityに限った話ではないのですが、開発環境のバージョンアップにおいて、最大の懸念は「パッケージ依存の不整合」かと思います。
💡 Unity6.4でUniVRM(v0.131.1)を使っているが、6.5にしたらエラーが出ないか? など
したがって、バージョンを上げる際はバックアップを取っておく必要があります。「手動でプロジェクトフォルダを丸ごとコピー(複製)」または「Unity Version Control(UVCS)でブランチを切る」の方法があります。

ここで注意したいのが「本体は軽いのに、自動生成されるキャッシュ類が非常に重い」という、Unityプロジェクト特有の構造にあります。

よって、コピーしたバックアップ側(今回で言うとNoteVroid_unity6.4)に関しては、Library フォルダを削除するのも手です。
プロジェクトフォルダをコピー(複製)する
コピーしたほうの Library フォルダを選択してゴミ箱へ(Command+Delete)
同様に Temp、obj、Logs フォルダも不要なら削除してOK(これらも自動生成されます)
📝 元のプロジェクト(本番で作業中のもの)のLibraryは絶対に消さないでください。これを消すと、次にUnityを開いたときに全アセットの再インポートが走り、規模によっては数分〜数十分待たされることになります。削除していいのはあくまで「コピーしたバックアップ側」だけです。
⚠️ UVCSで管理しているプロジェクトの場合は要注意です。プロジェクトフォルダには .plastic という隠し設定フォルダがあり、これはワークスペースの紐付け情報を保持しています。このフォルダを含めたままコピーすると、紐付け情報が重複し、同期エラーや不具合につながる可能性があります。
UVCS管理下のプロジェクトをバックアップする場合は、.plastic フォルダを除外するか、そもそも手動コピーではなく「ブランチを切る」方法をおすすめします。
■ バックアップからの復元方法

Unity Hubの右上にある「追加」→「ディスクから加える」から、バックアップしておいたフォルダ(例:NoteVroid_unity6.4)を選択して一覧に登録し直すだけです。
方法その2:UVCSブランチ
一方、ブランチを切る方法なら、容量の圧迫などはありません。

新しいブランチを作成。ブランチ名は「upgrade-to-6.5」とでもしておく。

upgrade-to-6.5 ブランチにいる状態

問題が起きたら、mainブランチに切り替えれば元通り。
現在のmainブランチから、upgrade-to-6.5 のような新しいブランチを作成する
そのブランチ上でプロジェクトをUnity 6.5で開き、移行作業・検証を行う
問題なければ mainブランチへマージ
もし問題が起きたら、mainブランチに切り替えるだけで6.4時点の状態にすぐ戻れる(ブランチを切っているのでmain自体は無傷)
どちらかと言うと「方法その1:フォルダごとコピー」より『方法その2:UVCSブランチ』の方をお勧めします。
📝 Unity Version Control(UVCS)とは、Unity公式が提供するバージョン管理システムです。Gitと同じように「変更履歴の記録」「複数人での同時作業」「過去の状態への復元」などができますが、特に3Dモデルやテクスチャのような大きなバイナリファイルの扱いに強く、Unityプロジェクトとの相性を意識して作られている点が特徴です。Gitはテキスト(コード)の差分管理を得意としますが、UVCSは大容量のバイナリファイルでも差分だけを効率よく管理できるよう設計されています。
Unity Hubで新バージョンをインストールする
新バージョンをインストールする
では、新バージョンをインストールしましょう(Unity6.5を例とします)

Unity Hubを開き「インストール)」タブを選択。
右上の「エディターをインストール」ボタン押下。

対象バージョンの「インストール」ボタン押下。

必要に応じ追加モジュールを選択し「インストール」ボタン押下。

Unity6.5のインストール完了。
なお、モジュールは後からでも追加できます(「⚙️管理」→「モジュールを加える」)
プロジェクトを開く
では、Unity6.4のプロジェクトを6.5で開きましょう。

「プロジェクト」タブを選択。
対象プロジェクトの「エディターのバージョン」をクリック。

新バージョンを選択し「開く」押下。
コンパイルエラーが出たら(Safe Mode)
もしプロジェクトにコンパイルエラーがある場合、「Enter Safe Mode?(セーフモードに入りますか?)」というダイアログが出ます。

新バージョン(Unity 6.5)でプロジェクトを開こうとしたところ、コンパイルエラー(スクリプトのコード自体がビルドできない状態)が検出された、というお知らせです。

「Enter Safe Mode」を選ぶと、最小限の状態でUnityが起動するので、コンソール(Console)に表示されたエラーを1つずつ確認しながら直していきます。

Packages/com.vrmc.gltf/Editor/UniHumanoid/MuscleInspectorEditor.cs(148,75):
error CS0619: 'TreeViewItem' is obsolete...これは、UniVRM(正確には内部で使われているcom.vrmc.gltfパッケージ)のエディター拡張コードが、Unity 6.5でTreeView関連クラスにジェネリック型指定が必須になった変更に対応できておらず、コンパイルエラーになっている状態です。
今回は「UniVRMの互換性問題」のようなので対応します。入っているのは「v0.131.1」なので、まずは、それより新しいバージョンが出ていないか確認したいと思います。
UniVRMのリリース一覧(https://github.com/vrm-c/UniVRM/releases)にアクセス。

何と、ちょうど「v0.131.2」がリリースされていたので、ダウンロードします。

前回と同じく.unitypackageファイル(Unity用にパッケージ化されたもの)なので、そのままAssetsフォルダに展開します。

UVCSを使っている場合、チェックインします。
「章:移行前の準備(バックアップ)」の「方法その2:UVCSブランチ」で作成した「upgrade-to-6.5」ブランチになっているかも確認しましょう。

前回あった 「SAFE MODE」の表示が消えています。これはコンパイルエラーが解消され、通常モードに戻れた状態です
(※ 念の為、コンソールから本当にエラーが消えているか確認しましょう)
ゲーム開始「▶」で確認
DirectoryNotFoundException: Could not find a part of the path ……ゲーム自体が動くのですが「フォルダが見当たらない」的なエラーが結構出てきたので、応急処置として空フォルダを手動で作って対処しました。
…… がキリがない!
「.unitypackage」方式から『Package Manager経由』方式に変える
エラーの原因
「フォルダが見当たらない」的なエラーがとまらないのは、以下が原因らしい。

つまり、UniVRM側のコード(エディター拡張やPackage Manager連携機能)の中に、「このパッケージにはこういうサンプルがありますよ」とUnityに教えるための処理が含まれています。
ところが、これは通常の「Package Manager経由でインストールされていることを前提」に書かれているため「.unitypackage」方式ではエラーになるという訳です。
そもそも、UniVRMを「.unitypackage」方式(.unitypackageファイルをAssetsに展開)でインストールしたのが間違いだったので『Package Manager経由』方式に切り替えましょう。
「.unitypackage」方式のUniVRMをアンインストールする。
「.unitypackage」方式はプロジェクト画面のAssetsにドラッグ&ドロップして展開するものです。アンインストールは、Finderでプロジェクトフォルダを開き、Packages内の該当ディレクトリを削除します。

Unityを終了し、Finderから「com.vrmc.gltf」「com.vrmc.univrm」を削除。その後、Unityを開き直します。
UniVRMを『Package Manager経由』方式でインストールする
削除後に、UniVRMを『Package Manager経由』方式でインストールし直します。


(上部メニュー)「ウィンドウ」→「Package Management」→「パッケージマネージャー」。「+」「Git URL からパッケージをインストール」
💡「UniGLTF」→「VRM」→「VRM10」の順(依存関係が浅いものから)で追加していきます。

https://github.com/vrm-c/UniVRM.git?path=/Packages/UniGLTF#v0.131.2
https://github.com/vrm-c/UniVRM.git?path=/Packages/VRM#v0.131.2
https://github.com/vrm-c/UniVRM.git?path=/Packages/VRM10#v0.131.2
「フォルダが見当たらない」的なエラーが解消されるはずです。
コード「120.003」対策
コード「120.003」エラー
パッケージマネージャーで「リストの更新」がいつまでも終わらない場合は、UnityHubでアカウントの再ログインしましょう。

この際、コード「120.003」エラーが発生する場合があります。
これは「アクセストークンが発行されたときのIPアドレス」と「今リクエストしている自分のIPアドレス」が一致していないため、サーバー側に拒否された、という意味です。
IPv6を一時的に無効化する
原因はさまざまですが、そのうちの一つに「IPv6」の場合もあります。
IPv6が有効な環境だと、IPv4/IPv6が混在してサーバー側の判定がズレることが報告されています。

システム設定 → Wi-Fi → 詳細 → TCP/IP → IPv6の設定を「自動」から『リンクローカルのみ』に変更して再試行してみましょう。
古いバージョンのアンインストール(容量節約)
アンインストール前の確認事項
Unity Editor(ユニティエディター)ですが、1バージョンあたり8〜15GB程度の容量を占めるため、複数バージョンを入れっぱなしにしているとストレージを圧迫しがちです。
ストレージの残量が少なくなってきたら、古いバージョンのアンインストールも検討してみましょう。
■ プロジェクト数の確認

Unity Hubを開き「インストール)」タブを選択。
そのバージョンを使用しているプロジェクト数が「0」であるかを確認。
■ 終了の確認
Unity Editorでの処理(ビルドなど)が完全に終了していない状態で、アンインストールを行うと、モジュールの削除が中途半端に終わってしまう場合があります。念のため、Unityを完全に終了してからアンインストールしましょう。
アンインストールの手順
各プロジェクトの新バージョンでの動作検証で問題なければ、いよいよ不要になった旧バージョンをアンインストールします。

削除したいバージョンの「⚙️管理」→「アンインストール」。
これだけで、Unity本体とそれに紐づくモジュール(macOS/iOS/Android/WebGLビルドサポートなど)がまとめて削除されます。モジュールを個別に消す必要はありません。
📝 Unity Hub経由でインストールしたバージョンでなく、手動でダウンロード / インストールしたバージョンの場合、「アンインストール」ではなく『削除』としか表示されない場合があります。この場合、Hub上の一覧からは消えますが、ディスク上のファイルは残るため、Finderから手動で削除する必要があります(次章参照)。
不要なキャッシュファイルを削除する
概要
Unityは他のサードパーティアプリと同様に「設定」「キャッシュ」「プロファイル」などのファイルをインストールパッケージの外に作成 / 保存します。Unityをアンインストールしても、これらのファイルは自動的には削除されません。アンインストールしても容量が戻らないという報告があるのはこのためです。

プロジェクトのLibraryフォルダは単なるキャッシュであり、たとえ削除しても、次にUnityでそのファイルを開いたときに自動的に再生成されます。逆に言えば、「使わなくなったプロジェクト」のLibraryフォルダは、Unity側が「もう不要」と判断してくれるわけではなく、フォルダが存在する限りディスク上に残り続けます。
より徹底的に容量を節約したい場合は、古いキャッシュ / ログが残っていないか確認すると良いでしょう。
📝 Finderの「移動」→「フォルダへ移動」から各パスに移動できます。
キャッシュ・不要ファイル削除対象リスト

~/Library/Caches/com.unity3d.*
~/Library/Logs/Unity/」
~/Library/Application Support/UnityHub/ 内のインストーラーキャッシュ(Cache、Code Cache、GPUCacheなど)
各プロジェクトのLibraryフォルダ(もう開かない古いプロジェクトのみ)
各プロジェクトのTemp、objフォルダ
これらのファイルやフォルダは安全に削除可能です。
削除する前に一度確認してから(条件付き)

「~/Library/Preferences/com.unity3d.*.plist」には、エディターの個人設定(ウィンドウ配置など)が、次回起動時に設定がリセットされます。
📝 .plistファイル(個人設定)は、サイズが数KB〜数百KB程度しかありません。わざわざ消すメリットが薄いので、消さない方が良いかも知れません。
基本的に削除しない(他バージョンに影響する可能性)

「~/Library/Application Support/Unity/」にはライセンス情報などが含まれており、これを消すとインストール済みの他のUnityバージョンにも影響する可能性があります。まだ他のバージョンを使う予定がある場合は、キャッシュやログ以外はうかつに消さないようにしましょう。
いいなと思ったら応援しよう!
ここまで読んでくれてありがとうございます!記事は基本的に無料で出していくので、気が向いたら応援してもらえると嬉しいです☕