当サイトの記事にはプロモーションが含まれています。

UnityでAndroidアプリのスクリーンショットを撮る方法|初心者でもできる簡単ガイド

スマホパソコン・スマホ教室
スポンサーリンク

ゲームやアプリを開発していると、「この画面をスクリーンショットとして保存したい!」という場面がよくありますよね。特に、UnityでAndroid向けに開発していると、スクリーンショットの撮影方法がわからないと困ってしまいます。そこで、今回は初心者の方でもわかりやすく、Unityを使ってAndroid端末でスクリーンショットを撮る方法をご紹介します。

スポンサーリンク

UnityでAndroidアプリのスクリーンショットを撮る基本の流れ

スマートフォンのイメージ

スマートフォンのイメージ

まずは、Unityでスクリーンショットを撮るための基本的な流れを押さえておきましょう。

  1. スクリーンショットを撮るためのコードを書く
  2. 保存先の設定を行う
  3. 保存した画像をギャラリーに反映させる

これらを順番に見ていきましょう。

スクリーンショットを撮るためのコードを書く

Unityでは、スクリーンショットを撮るための簡単なコードを記述することができます。以下のコードを使って、スクリーンショットを撮影しましょう。

using UnityEngine;
using System.Collections;

public class Screenshot : MonoBehaviour
{
public void TakeScreenshot()
{
string fileName = "screenshot_" + System.DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".png";
string filePath = Application.persistentDataPath + "/" + fileName;
ScreenCapture.CaptureScreenshot(filePath);
Debug.Log("Screenshot saved to: " + filePath);
}
}

このコードでは、現在の日時をファイル名に含めて、スクリーンショットを保存しています。保存先は、Android端末のアプリ専用のストレージ領域である`Application.persistentDataPath`に設定しています。

保存先の設定を行う

Android端末では、アプリが外部ストレージにアクセスするためには、適切なパーミッション(権限)を設定する必要があります。以下の手順で設定を行いましょう。

  1. Unityのメニューから「Edit」→「Project Settings」を選択します。
  2. 「Player」セクションを選択し、「Other Settings」タブを開きます。
  3. 「Write Permission」を「External(SDCard)」に設定します。

これで、アプリが外部ストレージに書き込むことができるようになります。

保存した画像をギャラリーに反映させる

スクリーンショットを撮っただけでは、Android端末のギャラリーアプリには表示されません。ギャラリーに反映させるためには、以下のコードを追加します。

using UnityEngine;
using System.Collections;

public class Screenshot : MonoBehaviour
{
public void TakeScreenshot()
{
string fileName = "screenshot_" + System.DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".png";
string filePath = Application.persistentDataPath + "/" + fileName;
ScreenCapture.CaptureScreenshot(filePath);
Debug.Log("Screenshot saved to: " + filePath);

// ギャラリーに反映させる
StartCoroutine(ScanFile(filePath));
}

private IEnumerator ScanFile(string path)
{
yield return new WaitForEndOfFrame();
string mediaPath = "file://" + path;
new AndroidJavaClass("android.media.MediaScannerConnection")
.CallStatic("scanFile", AndroidJNIHelper.GetRawObjectArray(new string { mediaPath }), null, null);
Debug.Log("Media scanned: " + mediaPath);
}
}

このコードでは、`MediaScannerConnection`を使用して、保存した画像をギャラリーに反映させています。

よくある質問や疑問

Q1: スクリーンショットの解像度を変更するにはどうすればいいですか?

`ScreenCapture.CaptureScreenshot`メソッドには、解像度を指定するオーバーロードがあります。例えば、2倍の解像度で保存したい場合は、以下のように記述します。

ScreenCapture.CaptureScreenshot(filePath, 2);

これで、解像度2倍のスクリーンショットが保存されます。

Q2: スクリーンショットを撮るタイミングをボタン押下にしたい場合はどうすればいいですか?

ボタンの`OnClick`イベントに、先ほどの`TakeScreenshot`メソッドを割り当てることで、ボタンを押したときにスクリーンショットを撮ることができます。

Q3: スクリーンショットを撮った後に画面に表示したい場合はどうすればいいですか?

保存した画像を`Texture2D`として読み込み、`UI.Image`コンポーネントの`sprite`に設定することで、画面に表示することができます。

まとめ

今回は、Unityを使ってAndroidアプリのスクリーンショットを撮る方法をご紹介しました。初心者の方でも、上記の手順を参考にすれば、簡単にスクリーンショットを実装することができます。ぜひ、試してみてください。

他にも疑問やお悩み事があれば、お気軽にLINEからお声掛けください。

この記事を書いた人
この記事を書いた人

企業の情報システム部門で10年以上、PC・アカウント・社内ネットワーク・Microsoft 365/Google Workspace運用を担当。年間数百件の問い合わせ対応(PC不調、メール送受信、Excel/Word資料、Teams会議、スマホ連携など)を通じて、初心者がつまずくポイントを「再現→原因切り分け→最短解決」の手順に落とし込んできました

現場や身近で実際に起きたトラブルをベースに、手順だけでなく「なぜそうなるか」「失敗しやすい落とし穴」「安全な設定(セキュリティ)」まで含めて解説します。

相談窓口(問い合わせ/LINE等)を設け、記事で解決しないケースも個別にサポートしていますので「パソコンが急に動かなくなった」「スマホの設定がわからない」などの悩みは一人で抱え込まず、お気軽にご相談ください。

【お問い合わせは下記URLから】
https://m32006400n.xsrv.jp/inquiry-form/

【公式LINEは下記URLから】
https://lin.ee/t8TDjcj

uri uriをフォローする
スポンサーリンク
よかったらシェアしてね! /
uri uriをフォローする

コメント

タイトルとURLをコピーしました