はじめに
こちらの記事はReazon Advent Calendar 2025の第4日目の記事となります。
よろしければ他のメンバーの記事もご覧ください。
初めまして!ゲーム開発部所属、エンジニアの杉尾です。
今回は、AndroidのSDKバージョンアップや、脆弱性対応等の対応のためにUnity6系へとアップデートした際に発生した問題点について、原因とその解決法についてまとめようと思います!
これからアップデート対応をされる方や、同じ問題点に直面している方々の参考となりましたら幸いです!
環境情報
- OS: macOS / Windows
- Version:
2022.3.21f1→6000.0.58f2→6000.0.62f1- 後述するトピックの解決法として最終的に
6000.0.62f1へアップデート
- 後述するトピックの解決法として最終的に
- Addressable Version: Addressable 2.6.0
- UnityEditor: Intel版(Apple Silicon版と挙動が違う可能性がございますのでご了承ください)
トピック1:Addressables 2.x でJSONカタログが読み込めないエラー
💥 何が発生したか
AddressableAssetSettingsのEnableJsonCatalogを有効にしてビルドし、json形式(.json)のカタログファイルが生成されているにもかかわらず、カタログファイル読み込み時にフォーマットエラーが発生した。
✅ 解決法
Scripting Define Symbols に ENABLE_JSON_CATALOG が含まれているか確認し、なければ追加する。
-
Project Settings > Player > Other Settingsを開く -
Scripting Define SymbolsにENABLE_JSON_CATALOGを追記する
🔍 原因
Addressables 2.x では、バイナリ形式(.bin)のカタログ利用が標準となっている。
これに伴い、従来の json形式(.json)のカタログを読み込む機能は、ENABLE_JSON_CATALOG というシンボルが定義されている場合のみコンパイルされる仕様(条件付きコンパイル)となってる。
通常、AddressableAssetSettingsのEnableJsonCatalogを有効にすると、自動的にENABLE_JSON_CATALOGをScripting Define Symbols に追加するようになっているが、独自でビルドスクリプトを実装しScripting Define Symbolsを動的に制御する場合はこのシンボルが削除されてしまわないように注意が必要となる。
📚 参考リンク
- Property EnableJsonCatalog
- Addressables: JSON catalog fails to load on visionOS (‘Enable Json Catalog’ seems ignored)
トピック2:Addressables 2.xのmonoscripts.bundle が引き起こす読み込みエラー
💥 何が発生したか
Addressables 2.x に移行後、AssetBundleの読み込みに失敗するようになった。 調査したところ、monoscripts.bundleの参照にてエラーが発生していることが判明した。
✅ 解決法
AddressableAssetSettings の MonoScript Bundle Naming Prefix 設定を変更し、従来の挙動に近しい形に設定する。
-
AddressableAssetSettings > General > Buildを開く -
MonoScript Bundle Naming PrefixをProject Name Hash(デフォルト)からCustomに変更する -
その下の入力欄を 空欄 にする
🔍 原因
AddressableAssetSettings の MonoScript Bundle Naming Prefix のデフォルト値が Project Name Hash に変更されていた。
そのため、アプリ本体のプロジェクトとアセットビルド用のプロジェクトが異なる場合、生成されるHash値が異なるものになるため参照時にエラーが発生してしまうものだと思われる。
📚 参考リンク
- Unity Manual: Addressable Asset Settings
-
Zenn: Addressables 1.21.19 アップデート (s_ryuuki 氏)
- 本現象の解決策として「Custom設定にして空欄にする」手法が詳しく調査されています。今回の対応はこちらの記事を参考にさせていただきました。
トピック3:Addressables 2.7 で GetDownloadSizeAsync が著しく低速化する
💥 何が発生したか
Addressables.GetDownloadSizeAsync(...) のレスポンスが、Unity 6 (Addressables 2.7系) になってから極端に遅くなる現象が発生した。
✅ 解決法
Addressables パッケージのバージョンを 2.7.x から 2.6.0 にダウングレードする。
Package Managerのウィンドウからは直接古いバージョンを選択できない場合があるため、プロジェクトフォルダ内の Packages/manifest.json を直接テキストエディタで開き、指定のバージョンに編集する。
// Packages/manifest.json
{
"dependencies": {
// "com.unity.addressables": "2.7.0", <-- 元の記述
"com.unity.addressables": "2.6.0", // <-- 2.6.0 に書き換え
// ... 他のパッケージ
}
}
書き換え後、UnityEditorを再起動すると2.6.0 が適用される。
🔍 原因
フォーラムによると、Addressables 2.7においてファイルサイズを調べる処理をコルーチンで分割するような仕様に変更されたことが要因と思われる。
この仕様に合わせる対応は影響範囲が大きかったため、今回は仕様変更前のバージョンである 2.6.0 へのダウングレードを選択した。
📚 参考リンク
トピック4:特定のiOS端末で描画がフリーズし、進行不能になる
💥 何が発生したか
6000.0.58f2のバージョンでビルドしたアプリにて、iOS16.7系やiPhone8+など数年前にリリースしたOSや端末上だと突如フリーズし、その後アプリが強制終了する現象が発生した。
✅ 解決法
Unity Editorのバージョンを 6000.0.62f1以降へアップデートする。
この問題はUnity側の既知の不具合として認識されており、バージョン 6000.0.62f1 にて、原因となっていたMetal描画周りの新機能(CAMetalDisplayLink)をデフォルトで無効化する対応が行われた。
🔍 原因
6000.0.56f1 付近から導入された、iOSの新しい描画タイミング同期API CAMetalDisplayLink のサポート対応が影響した模様。
具体的な原因はまだ明らかになっておらず、以下のIssueTrackerにて現在も調査されている。
[Metal] Game freezes after command buffer Timeout error
📚 参考リンク
まとめ
Unity6系にバージョンアップするに伴い、Addressable Systemにメジャーアップデートが入ったためこれに関係する不具合が多く発生したので、表示されるエラー文も直接の原因ではなく「ファイルの取得に失敗した」という内容しか確認できずかなり苦労しました...
Unity Issue Trackerの存在のありがたみがとても身に染みました...🙏
ひとまず今回まとめた内容がアップデート対応時に苦戦したポイントですので、これらが解消できれば解決すると思います!
ここまでご覧いただきありがとうございました!
▼新卒エンジニア研修のご紹介
レアゾン・ホールディングスでは、2025年新卒エンジニア研修にて「個のスキル」と「チーム開発力」の両立を重視した育成に取り組んでいます。 実際の研修の様子や、若手エンジニアの成長ストーリーは以下の記事で詳しくご紹介していますので、ぜひご覧ください!
▼採用情報
レアゾン・ホールディングスは、「世界一の企業へ」というビジョンを掲げ、「新しい"当たり前"を作り続ける」というミッションを推進しています。 現在、エンジニア採用を積極的に行っておりますので、ご興味をお持ちいただけましたら、ぜひ下記リンクからご応募ください。