LanguageEnglish
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

This version of Unity is unsupported.

ScreenCapture.CaptureScreenshotAsTexture

public static Texture2D CaptureScreenshotAsTexture(int superSize);

Parameters

superSizeFactor by which to increase resolution.

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