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

ScreenCapture.CaptureScreenshotAsTexture

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

声明

public static Texture2D CaptureScreenshotAsTexture(int superSize);

声明

public static Texture2D CaptureScreenshotAsTexture(ScreenCapture.StereoScreenCaptureMode stereoCaptureMode);

参数

superSize 用于增加分辨率的系数。
stereoCaptureMode 启用立体渲染时,指定要捕获的眼部纹理。

描述

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

superSize 参数大于 1 时,将生成更高分辨率的屏幕截图。例如,传递 4 将使屏幕截图比通常情况下大 4x4 倍。这对于生成用于打印的屏幕截图很有用。

要从此方法获得可靠的输出,您必须确保在帧渲染结束时调用它,而不是在渲染过程中调用它。确保这一点的一种简单方法是从一个在 WaitForEndOfFrame 上产生结果的协程中调用它。如果您在渲染过程中调用此方法,您将获得不可预测且未定义的结果。

using UnityEngine;
using System.Collections;

public class ScreenShotter : MonoBehaviour { IEnumerator RecordFrame() { yield return new WaitForEndOfFrame(); var texture = ScreenCapture.CaptureScreenshotAsTexture(); // do something with texture

// cleanup Object.Destroy(texture); }

public void LateUpdate() { StartCoroutine(RecordFrame()); } }