Legacy Documentation: Version 2018.2 (Go to current version)
LanguageEnglish
  • C#

ScreenCapture.CaptureScreenshotAsTexture

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

public static Texture2D CaptureScreenshotAsTexture(int superSize);
public static Texture2D CaptureScreenshotAsTexture(ScreenCapture.StereoScreenCaptureMode stereoCaptureMode);

Parameters

superSizeFactor by which to increase resolution.
stereoCaptureModeSpecifies the eye texture to capture when stereo rendering is enabled.

Description

Captures a screenshot of the game view into a Texture2D object.

When superSize parameter is larger than 1, a larger resolution screenshot will be produced. For example, passing 4 will make the screenshot be 4x4 larger than it normally would. This is useful to produce screenshots for printing.

The resulting screenshot is influenced by when, in the frame processing, it is invoked. To capture all the rendering stacks, it needs to be called once the frame has ended. Using a coroutine that yields on WaitForEndOfFrame is a simple way of doing so. If end of frame has not been reached when this metod is called, some rendering artifacts (like UI for example) may not be contained in the generated texture.

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()); } }

Did you find this page useful? Please give it a rating: