コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】Addressables でローカルカタログを読み込む時にメインスレッドが止まらないようにする方法

検証環境

  • Addressables 1.16.19

概要

  • Addressables で管理しているグループが多いと、
    ローカルカタログを読み込む処理に時間がかかるようになり、
    メインスレッドが止まってしまう
  • 重たい処理は TextDataProvider.Start 関数で File.ReadAllText を使用して
    settings.json やローカルカタログを読み込んでいる処理なので
    この部分を Tesk.Run で別スレッドに処理を逃してあげることで
    メインスレッドが止まることは防げる

TextDataProvider.cs

34 行目

public async void Start(ProvideHandle provideHandle, TextDataProvider rawProvider, bool ignoreFailures)

47 行目

var text = await Task.Run( () => File.ReadAllText(path));