Unityでスクリーンショットを撮る
unity unity programming
Published: 2020-02-06

 

Unityで画面のスクリーンショットを撮る方法を調べました。

特に利用する予定はないのですが、SNSに簡単にスクリーンショットを投稿する機能はよくみます。

知っておいて損はなさそうです。

 

スクリーンショットを撮ってファイルに保存する方法

下記のスクリプトでスクリーンショットを撮ることができます。

撮ったスクリーンショットのファイルは「Application.persistentDataPath」に保存されます。


ScreenCapture.CaptureScreenshot(fileName);

 

スクリーンショットを撮ってTexture2Dに保存する方法

Texture2Dに保存する場合は下記のスクリプトを使用します。


Texture2D captureTexture = ScreenCapture.CaptureScreenshotAsTexture();

 

Texture2Dに保存する場合に注意するのは、ファイルと違ってすぐにスクリーンショットを撮ってしまうことです。

ファイル同様にフレームの最後でスクリーンショットを撮りたい場合は下記のようにコルーチンを使ってフレーム最後まで待ちます。


IEnumerator CaptureScreenshotAtEndOfFrame()
{
    yield return new WaitForEndOfFrame();
    Texture2D captureTexture = ScreenCapture.CaptureScreenshotAsTexture();
}

 

環境

Windows 10 Pro

Unity 2019.3