首页 > 解决方案 > 如何在 C++ 中更新 UTextureRenderTarget2D?

问题描述

我被引用@J。Rehbein 的问题。 如何在 C++ 中动态更新 UTextureRenderTarget2D?

并使用公共模块(“Core”、“CoreUObject”、“Engine”、“InputCore”、“UMG”、“GameplayTasks”、“Landscape”、“RHI”、“RenderCore”)。

为什么打印断言失败日志?

如何修复断言失败的问题?

请老师们。

void AWorldCreator::BeginPlay()
{
 Super::BeginPlay();
 if (RenderTarget != nullptr) {
   RenderTarget->InitCustomFormat(Width, Height, PF_B8G8R8A8, true);

   auto region = FUpdateTextureRegion2D(0, 0, 0, 0, Width, Height);

   FTexture2DRHIRef TextureRHI = RenderTarget->GameThread_GetRenderTargetResource()->GetRenderTargetTexture();

   ENQUEUE_RENDER_COMMAND(UpdateTextureRegionsData)(
   [=](FRHICommandListImmediate& RHICmdList)
     {
       check(TextureRHI.IsValid());  // Assertion failed line
     });
 }

}

标签: c++unreal-engine4texture2drendertarget

解决方案


Texture->UpdateResource();
Texture->UpdateResourceImmediate(false);

推荐阅读