Unityゲーム開発者アイデルンのBlog

よかったら読んでいってね

Unityでスクリーンショットの撮り方

アプリを掲載するときにスクリーンショットを取ることが度々あるのですがUnity標準ではスクリーンショット機能がありません。

 

では一体どうやってとるのかというと一つはプリントスクリーンで画面まるごと撮る方法が浮かび上がると思いますがそれだと編集に時間を奪われてしまいます。

 

UnityではScreenCapture.CaptureScreenshot()という関数があるのでこれを利用してスクリーンショットを撮ってしまいましょう。

 

ゲーム画面そのままの比率で撮れるので便利なものです。

 

 

使い方

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;

public class SS : MonoBehaviour
{
    DateTime toDay;

    void Update()
    {
        toDay = DateTime.Now;

        if (Input.GetKeyDown(KeyCode.Space))
        {
            string year = toDay.Year.ToString();
            string month = toDay.Month.ToString();
            string day = toDay.Day.ToString();
            string hour = toDay.Hour.ToString();
            string min = toDay.Minute.ToString();
            string sec = toDay.Second.ToString();
            CaptureScreenShot($"{year}_{month}_{day}_{hour}_{min}_{sec}.png");
        }
    }
    void CaptureScreenShot(string name)
    {
        ScreenCapture.CaptureScreenshot(name);

    }
}

 

解説

 

using Systemで時刻を習得しています。

 

DateTimeを使うためのものです。

 

DateTime.Nowで今日の日付をリアルタイムで紐づけて時間を習得しています。

 

toDay.Year.ToString()で年。

 

toDay.Month.ToString()で月。

 

toDay.Day.ToString()で日。

 

 toDay.Hour.ToString()で時。

 

toDay.Minute.ToString()で分。

 

toDay.Second.ToString()で秒。

 

を習得し、void CaptureScreenShot(string name)でstringに変換して代入することで今日の日付を代入することができるようになります。

 

もちろんvoid CaptureScreenShot(string name)のname部分をいじって自分の好きなようにカスタマイズできるのでお好きにお使いください。

 

なお保存先はC:\Users\自分のフォルダ名\自分のプロジェクトフォルダ名

 

となっています。(Unityインストールデフォルトの場合)

 

まとめ

スクリーンショットをとるならUnityが用意した関数利用するのがおすすめ。

 

もちろん外部ツールを使ってもいいですが編集するのがめんどくさいと思っている人は使ってみてはいかがでしょうか。