2016/06/21
概要
いよいよiOS用のアプリを公開しよう!と思っても、申請には様々な解像度のスクリーンショットが必要になる。
iOSのストア用スクリーンショットの各サイズを一括で準備する
Unityでゲームのスクリーンショットを撮る方法はあるけど、好きなタイミング、好きな解像度でスクリーンショットを撮るのはちょっと面倒。ということで、スクショ用のコード書いてみた。
ScreenShot.cs
using UnityEngine; using System.Collections; public class ScreenShot : MonoBehaviour { // Use this for initialization void Start () { } void Awake(){ DontDestroyOnLoad (this.gameObject); } static int count = 0; // Update is called once per frame void Update () { if (Input.GetKey(KeyCode.Space)) { count++; Application.CaptureScreenshot("screenshot" + count.ToString() + ".png",4); } } }
たいしたことは書いてないです。。
準備
・UnityのApplication.CaptureScreenshotはGameViewで表示している解像度で撮影するため、上記のGameViewの解像度を撮影したいスクショの解像度にすれば良い。
・ただし、使用しているモニタの解像度が低かったり、ノートパソコンで作業していたりすると、解像度が足りず、全てを表示できない場合がある。
・1080×1920の解像度で撮影したいとすると、ディスプレイの解像度を超えてしまうため、対応が必要。
・そこで上画面のとおりGameViewの表示解像度を縦横それぞれ1/4の解像度(270×480)に設定。(アスペクト比が合っていて、モニタ上でGameView全てを表示できれば倍率は変更可能)
・Application.CaptureScreenshot(“screenshot” + count.ToString() + “.png”,4); ←第2引数の4が解像度を4倍にして撮影するという意味。これで270×480の4倍の解像度(1080×920)で撮影することができる。
・左上のUsing resolution が表示されているときは、指定の解像度で表示できていない状態。この状態だと245×436の4倍の解像度(980×1744)で保存されてしまう。
・このように指定の解像度できっちりGameViewが表示できるようにサイズを広げる(今回は1/4サイズ。270×480)
・左上のUsing Resolutionが消えればOK
使い方
・ゲームを再生し、任意のタイミングでスペースキーを押すと、スクリーンショットを撮影可能。
・保存先はAssets直下。上記の通り、指定の解像度でスクリーンショット撮影できました。
まとめ
・解像度を計算するという一手間が必要だけど、好きなタイミング、好きな解像度でスクリーンショットが撮影できる。
参考
以下を参考にしました。