Параметры
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)
{
// Текстура рендеринга больше не нужна, она была прочитана.
DestroyImmediate(renderTexture);
using (var imageBytes = request.GetData())
{
// сделать что-то с данными пикселей.
}
}
}