UE4怎么截图?

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用UE4截图API来生成Actor的截图。以下是一些简单的步骤: 1. 在你的Actor类中添加一个函数,该函数将用于生成截图。例如: ```cpp void MyActor::TakeScreenshot() { UWorld* World = GetWorld(); if (World) { // 获取GameViewportClient UGameViewportClient* ViewportClient = World->GetGameViewport(); if (ViewportClient) { // 获取Viewport大小 int32 Width, Height; ViewportClient->GetViewportSize(Width, Height); // 创建RenderTarget UTextureRenderTarget2D* RenderTarget = UTextureRenderTarget2D::CreateTransient(Width, Height); // 创建SceneCaptureComponent2D USceneCaptureComponent2D* SceneCaptureComponent = NewObject<USceneCaptureComponent2D>(this); // 设置SceneCaptureComponent2D SceneCaptureComponent->TextureTarget = RenderTarget; SceneCaptureComponent->FOVAngle = 90.f; SceneCaptureComponent->bCaptureEveryFrame = false; SceneCaptureComponent->bCaptureOnMovement = false; // 将SceneCaptureComponent2D添加到Actor中 SceneCaptureComponent->AttachToComponent(RootComponent, FAttachmentTransformRules::KeepRelativeTransform); // 绘制Actor到RenderTarget中 ViewportClient->Draw(); SceneCaptureComponent->CaptureScene(); // 保存RenderTarget到PNG文件 FString FilePath = FPaths::ProjectSavedDir() / TEXT("Screenshots/MyActor.png"); FHighResScreenshotConfig Config; Config.SetHDRCapture(false); Config.SetResolutionMultiplier(1); Config.SaveImage(FilePath, RenderTarget); // 删除SceneCaptureComponent2D SceneCaptureComponent->DetachFromComponent(FDetachmentTransformRules::KeepRelativeTransform); SceneCaptureComponent->DestroyComponent(); } } } ``` 2. 在需要截图的地方调用该函数。例如,你可以将该函数添加到Actor的OnClicked事件中: ```cpp void MyActor::OnClicked() { TakeScreenshot(); } ``` 3. 运行游戏,并在Actor上单击以生成截图截图将保存在项目的Saved/Screenshots目录中。 希望这能够帮助到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值