コガネブログ

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

【Unity】Application.backgroundLoadingPriority が反映されない場合

概要

using UnityEngine;

public class Example : MonoBehaviour
{
    private void Awake()
    {
        Application.backgroundLoadingPriority = ThreadPriority.High;
    }

    [RuntimeInitializeOnLoadMethod( RuntimeInitializeLoadType.BeforeSceneLoad )]
    private static void RuntimeInitializeOnLoadMethodBeforeSceneLoad()
    {
        Application.backgroundLoadingPriority = ThreadPriority.High;
    }

    [RuntimeInitializeOnLoadMethod( RuntimeInitializeLoadType.AfterSceneLoad )]
    private static void RuntimeInitializeOnLoadMethodAfterSceneLoad()
    {
        Application.backgroundLoadingPriority = ThreadPriority.High;
    }

    private void Update()
    {
        Debug.Log( Application.backgroundLoadingPriority ); // BelowNormal
    }
}

Awake や RuntimeInitializeOnLoadMethod のタイミングだと反映されず
BelowNormal に戻ってしまう

using UnityEngine;

public class Example : MonoBehaviour
{
    private void Start()
    {
        Application.backgroundLoadingPriority = ThreadPriority.High;
    }

    private void Update()
    {
        Debug.Log( Application.backgroundLoadingPriority ); // High
    }
}

Start だと正しく反映される