Version: 2017.4
LanguageEnglish
  • C#
  • JS

Script language

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

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 method CaptureScreenshotAsTexture(superSize: int): Texture2D;
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.

no example available in JavaScript
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()); } }