Unityを使った3Dゲームの作り方(かめくめ)ゲーム開発エンジンUnityを使った3Dゲームの制作に参考になる情報を公開しています。コピー2018.03.16今回はUnityのゲームにゲーム画面のスクリーンショットを撮る機能を作成していきます。ゲームユーザーが自身のブログやツイッターにゲームのスクリーンショットを載せたい時にあらかじめゲーム内でその機能が搭載されていると便利ですよね。そんなわけでゲーム内にスクリーンショット機能を搭載し、ファイルに保存できるようにしていきます。今回の機能を搭載すると↑のような感じでボタンを押すとスクリーンショット画像が指定したフォルダに保存されるようになります。今回はボタンを押すとスクリーンショットを撮るようにしていますが、キーボードを押した時や特定のタイミング(StartやUpdateメソッドで処理を記述して)で自由にスクリーンショットを撮ることが出来ます。スポンサーリンクUnityのスクリーンショット機能この後、ゲーム内にスクリーンショット機能を作成していきますが、スクリーンショットを撮る処理自体はすごく簡単です。画面サイズ);ScreenCapture.CaptureScreenshotの引数にファイル名と画面のサイズを指定するだけです。画面サイズは1が通常サイズで2にすると2倍、3にすると3倍の大きさとなります。スクリーンショットのファイルはPNG形式で保存されるので、ファイル名の拡張子に.PNGを付けます。"/savedata.PNG");}と記述すればAssetsフォルダ以下にsavedata.PNGファイルが保存されます。Application.dataPathはゲームデータフォルダのパスを返すのでUnityEditor上ではAssetsフォルダ、スタンドアロン形式の場合はゲームのフォルダのパスを返します。モバイル端末(iOS、Android)の場合はApplication.persistentDataPathで永続的な保存ディレクトリのパスを得られますのでこちらを使うといいと思います。ゲーム内にスクリーンショット機能を搭載するスクリーンショットを撮る処理がわかりましたので、サンプルを作成してみましょう。スクリーンショット用UIの作成まずはスクリーンショットで使うUIを作成していきます。ヒエラルキー上にCanvasを作成し、名前をScreenShotとします。その子要素にButtonを作成し、名前をScreenShotButtonとします。ScreenShotButtonを押すとスクリーンショットの撮影をするようにします。ScreenShotの子要素にPanelを作成し名前をLogPanel、その子要素にTextを作成し名前をLogTextとします。LogPanelはスクリーンショットを撮った時に表示するテキストとして使います。Emptyで空のゲームオブジェクトを作成し、名前をSuperSizePanelとします。その子要素にSliderを作成し名前をSuperSizeSlider、Textを作成し名前をSuperSizeTextとします。SuperSizePanelはスクリーンショット画像のサイズの指定と大きさの表示をします。Numbersにチェックを入れ整数値で変化するようにします。SuperSizeTextのTextには1を入れておきます。UIの位置等は調整してください。調整したUIは↑のような感じにしました。左上にScreenShotButton、SuperSizePanelを配置し、画面中央にLogPanelを配置しました。これでUIが完成しました。スクリーンショット機能のスクリプトの作成UIが完成したので、ボタンを押した時に処理するスクリプトを作成していきます。ScreenShotにScreenShotScriptスクリプトを新しく作成し取り付けます。