[UE5.4+]运行时设置RHI(解决高版本失效)

Description
主播在引擎升级时碰到了设置RHI失效的问题,研究了几天找到的解决办法,希望能帮到大家!
参考:https://www.bilibili.com/video/BV1Xg41187A4/

Comments

Mike陨 2025-07-25

哥们,你也是程序啊,[点赞][点赞][点赞]

♥ 1 ↩ 1

svdvd 2026-02-07

这玩意 适用 Unable to launch with RHI 'DirectX 11' since the project is not configured t  这种报错吗

↩ 1

125690d 2025-07-24

精简版设置RHI的代码: void URenderLibrary::SetRHI(ERHIMode NewRHI) { FString CurrentPlateform = UGameplayStatics::GetPlatformName(); FString CurrentRHI; if (CurrentPlateform == "Windows") { GConfig->Flush(true, GEngineIni); GConfig->GetString(TEXT("/Script/WindowsTargetPlatform.WindowsTargetSettings"), TEXT("DefaultGraphicsRHI"), CurrentRHI, GEngineIni); FString TargetRHI; switch (NewRHI) { case ERHIMode::DX11: TargetRHI = "DefaultGraphicsRHI_DX11"; break; case ERHIMode::DX12: TargetRHI = "DefaultGraphicsRHI_DX12"; break; case ERHIMode::Vulkan: TargetRHI = "DefaultGraphicsRHI_Vulkan"; break; default: return; } if (TargetRHI != CurrentRHI) { if (!FPlatformFileManager::Get().GetPlatformFile().FileExists(*GEngineIni)) { FFileHelper::SaveStringToFile(TEXT(""), *GEngineIni); } GConfig->LoadFile(GEngineIni); GConfig->SetString(TEXT("/Script/WindowsTargetPlatform.WindowsTargetSettings"), TEXT("DefaultGraphicsRHI"), *TargetRHI, GEngineIni); GConfig->Flush(false, GEngineIni); } } }

↩ 1