Unity エディタでスクリーンショットをとる
これやりましたってプルリクエストなどに簡易的にスクリーンショットを載せたいのだが,ゲーム画面だけトリミングするのが面倒なので Unity エディタで取れるようにした.
概要
次のような方針にする.とにかく簡単に取りたい.
- とりあえず簡単にスクリーンショットを取りたいので
ScreenCapture.CaptureScreenshot
で取る - また,Unity エディタにショートカットを設定して,さくっと取れるようにする
環境
- Unity 2018.2.16f1 Personal
- macOS 10.13.6 (17G65)
実装する
using System.IO;
using UnityEditor;
using UnityEngine;
namespace Editor
{
public class Screenshot
{
[MenuItem("Tools/Take Screenshot %#p")]
public static void TakeScreenshot()
{
var assetDir = new DirectoryInfo(Application.dataPath);
var screenshotsDir = assetDir.Parent.CreateSubdirectory("Screenshots");
var file = $"{System.DateTime.Now:yyyyMMddHHmmss}.png";
var path = Path.Combine(screenshotsDir.FullName, file);
ScreenCapture.CaptureScreenshot(path);
Debug.Log($"Saved screenshot: {path}");
}
}
}
プロジェクトルートに Screenshots
ディレクトリを作ってその中にスクリーンショットを保存する.
MenuItem
アトリビュートを使ってキーボードショートカット Cmd + Shift + P
を設定した.
余談だが,出力ファイル名を ISO8601 でフォーマットした時刻にしていたら,出力時に :
が /
に置換されてしまう問題があったので適当なフォーマット(yyyyMMddHHmmss
)にした.
使い方
- Unity エディタでプロジェクトを Run する
- Cmd + Shift + P を押す(または,メニューから Tools > Taks Screenshot を選択する)
まとめ
ScreenCapture.CaptureScreenshot
でスクリーンショットを取ったMenuItem
アトリビュートでキーボードショートカットを設定した
さくっとスクリーンショットを取れるようになった.プルリクにがんがん貼っていきたい.