発生した問題
サーバーに置いてある 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()
の返り値は常に空のリストになります。
参考
*1:デフォルトでは OFF になっています。