Описание
Приоритет потока фоновой загрузки.
Позволяет вам контролировать, сколько времени требуется для асинхронной загрузки данных в зависимости от влияния на производительность игры при загрузке в фоновом режиме.
Функции асинхронной загрузки, загружающие объекты (Resources.LoadAsync, AssetBundle.LoadAssetAsync, AssetBundle.LoadAllAssetAsync) , сцены (SceneManager.LoadSceneAsync) выполняют чтение и десериализацию данных в отдельном потоке фоновой загрузки и интеграцию объектов в основном потоке. Интеграция зависит от типа объекта, а для текстур сетка означает загрузку данных в графический процессор, аудиоклипы подготавливают данные для воспроизведения.
Во избежание сбоев мы ограничиваем время интеграции в основном потоке в зависимости от значения backgroundLoadingPriority:
- ThreadPriority.Low - 2 мс
- ThreadPriority.BelowNormal - 4 мс
- ThreadPriority.Normal - 10 мс
- ThreadPriority.High - 50 мс
Это максимальное время, которое все асинхронные операции могут проводить в одном кадре в основном потоке.
Поток фоновой загрузки использует backgroundLoadingPriority напрямую.
using UnityEngine;
public class ExampleScript : MonoBehaviour
{
void Example1()
{
// Load as much data as possible, as a result frame rate will drop.
// Good for fast loading when showing progress bars.
Application.backgroundLoadingPriority = ThreadPriority.High;
}
void Example2()
{
// Load data very slowly and try not to affect performance of the game.
// Good for loading in the background while the game is playing.
Application.backgroundLoadingPriority = ThreadPriority.Low;
}
}
Смотрите так же: ThreadPriority enum, AsyncOperation.priority.