做了一个简单测试,加载300M的网格模型。
加载代码:
TArray<FSoftObjectPath> TargetsToStream;
TargetsToStream.Add(FSoftObjectPath("StaticMesh'/Game/TestMesh.TestMesh'"));
auto createmesh = FStreamableDelegate::CreateLambda([=] {
UStaticMesh* staticmesh = Cast<UStaticMesh>(FSoftObjectPath("StaticMesh'/Game/TestMesh.TestMesh'").TryLoad());
Mesh->SetStaticMesh(staticmesh);
});
UAssetManager::Get().GetStreamableManager().RequestAsyncLoad(TargetsToStream, createmesh, FStreamableManager::DefaultAsyncLoadPriority);
开启 Async Loading Thread Enabled 帧率波动:
关闭 Async Loading Thread Enabled 帧率波动:
从帧率波动上看,开启异步加载后 波动较小,但是花费时间 更多。(个人还是建议开启)