Asset Manager Strategy
Define gameplay-ready bundles (`Default`, `UI`, `Audio`) to load minimal sets based on phase transitions.
Определяйте gameplay-ready bundles (`Default`, `UI`, `Audio`) и загружайте минимальные наборы по фазам игры.
Asset Streaming
Asset Streaming
Manage heavy content by Primary Assets, bundle rules, and asynchronous handles to keep frame pacing stable.
Потоковая загрузка ассетов
Управляйте тяжелым контентом через Primary Assets, правила bundle и асинхронные handles, чтобы удерживать стабильный frame pacing.
Video Walkthrough
Видеообзор
Shared UE5 explainer video for this section.
Общее объясняющее видео по UE5 для этого раздела.
Define gameplay-ready bundles (`Default`, `UI`, `Audio`) to load minimal sets based on phase transitions.
Определяйте gameplay-ready bundles (`Default`, `UI`, `Audio`) и загружайте минимальные наборы по фазам игры.
Use `TSoftObjectPtr` and `FPrimaryAssetId` to avoid startup spikes from hard object references.
Применяйте `TSoftObjectPtr` и `FPrimaryAssetId`, чтобы убрать стартовые пики от жестких ссылок.
Async Loading Thread throughput depends on package granularity. Keep package sizing consistent.
Пропускная способность Async Loading Thread зависит от гранулярности пакетов. Держите размер пакетов консистентным.
Hard references from UI widgets to world assets can silently disable streaming benefits.
Жесткие ссылки из UI-виджетов на world-ассеты могут незаметно свести пользу стриминга к нулю.
Track load stalls by category and gate cinematic transitions with explicit readiness signals.
Отслеживайте stalls по категориям и блокируйте cinematic-переходы до явного сигнала готовности.
void UZoneStreamingService::PreloadZone(const FPrimaryAssetId& ZoneAssetId)
{
const TArray<FName> Bundles = { TEXT("Default"), TEXT("Audio") };
PendingHandle = UAssetManager::Get().LoadPrimaryAsset(
ZoneAssetId,
Bundles,
FStreamableDelegate::CreateUObject(this, &UZoneStreamingService::OnZoneReady),
FStreamableManager::AsyncLoadHighPriority
);
}