Addressables.CheckForCatalogUpdates() で返ってくるリストが常に空になる問題

発生した問題

サーバーに置いてある Addressables のコンテンツカタログをアップデートしてから Addressables.CheckForCatalogUpdates() を実行しても、常に空のリストしか返ってこないという問題に遭遇しました。

解決方法

先に Addressables.InitializeAsync() を明示的に実行して、初期化が完了するのを待ってから Addressables.CheckForCatalogUpdates() を呼ぶ。

説明

Addressables の初期化は、Addressables API を初めて叩いたときに自動的に行われるので、普通はわざわざ Addressables.InitializeAsync() を実行する必要はありません。

なので、いきなり Addressables.CheckForCatalogUpdates() を呼んでもエラーにはなりません。

しかし、この時点では Addressables の初期化はまだ「完了」はしていないので、カタログの更新のチェックを行うことができないようです。

エラーにはならないが、カタログ更新のチェックも行えないので、結果として空のリストが返ってくる……ということのようです。

普通にエラーを吐いてくれたほうがありがたいんですが、どうしてこういう仕様になっているんですかね……。

補遺

なお、Addressables の設定の「Disable Catalog Update on Startup」が OFF の場合*1、Addressables の初期化時に自動でカタログのアップデートを行うようになるので、この場合も Addressables.CheckForCatalogUpdates() の返り値は常に空のリストになります。

f:id:Gigacee:20211222175947p:plain

参考

forum.unity.com

*1:デフォルトでは OFF になっています。

The coloring of this site is Dracula PRO🧛🏻‍♂️
This website uses the FontAwesome icons licensed under CC BY 4.0.

2020 GIGA CREATION