コガネブログ

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

【Unity】データをバックグラウンドで読み込む時に 1 フレーム内で使える最大時間を変更できる「Application.backgroundLoadingPriority」

概要

Application.backgroundLoadingPriority を使用することで

  • Resources.LoadAsync
  • AssetBundle.LoadAssetAsync
  • AssetBundle.LoadAllAssetAsync
  • SceneManager.LoadSceneAsync

これらの関数を用いてデータをバックグラウンドで読み込む時に
1 フレーム内で使える最大時間を変更できます

列挙型 最大時間
ThreadPriority.Low 2 ms
ThreadPriority.BelowNormal(デフォルト) 4 ms
ThreadPriority.Normal 10 ms
ThreadPriority.High 50 ms

使用例

using UnityEngine;

public class Example : MonoBehaviour
{
    private void Awake()
    {
        // 可能な限り多くのデータを読み込みます
        // その結果、フレームレートが低下する可能性があります
        // プログレスバーを表示して読み込みを行う場面に適しています
        Application.backgroundLoadingPriority = ThreadPriority.High;
        
        // データをゆっくり読み込み、
        // ゲームのパフォーマンスに影響を与えないようにします
        // ゲームプレイ中にバックグラウンドで読み込みを行う場面に適しています
        Application.backgroundLoadingPriority = ThreadPriority.Low;
    }
}

参考サイト様