版本:Unity 6 (6000.0)
语言英语
  • C#

ScreenCapture.CaptureScreenshotIntoRenderTexture

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读用户提出的每个建议更改,并在适用的情况下进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请 <a>稍后再试</a>。感谢您花时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public static void CaptureScreenshotIntoRenderTexture(RenderTexture renderTexture);

参数

renderTexture 将填充屏幕内容的 RenderTexture。

描述

将游戏视图的屏幕截图捕获到 RenderTexture 对象中。

这种屏幕截图变体使您能够使用 AsyncGPUReadback 异步读取像素,从而使该过程在主线程上占用更少的时间。

有关何时调用此方法的信息,请参阅 ScreenCapture.CaptureScreenshotAsTexture 中的说明。

using UnityEngine;
using System.Collections;
using UnityEngine.Rendering;

public class ScreenCaptureIntoRenderTexture : MonoBehaviour { private RenderTexture renderTexture;

IEnumerator Start() { yield return new WaitForEndOfFrame();

renderTexture = new RenderTexture(Screen.width, Screen.height, 0); ScreenCapture.CaptureScreenshotIntoRenderTexture(renderTexture); AsyncGPUReadback.Request(renderTexture, 0, TextureFormat.RGBA32, ReadbackCompleted); }

void ReadbackCompleted(AsyncGPUReadbackRequest request) { // Render texture no longer needed, it has been read back. DestroyImmediate(renderTexture);

using (var imageBytes = request.GetData<byte>()) { // do something with the pixel data. } } }