クリアメモリ

プログラミングやモーショングラフィックス、便利なアプリケーションなど雑多に記録するブログ

【Unity】CaptureScreenshotの保存先を変更する方法

f:id:clrmemory:20170717012244j:plain

先日、Unityアプリを作成していたところ「CaptureScreenshot」という機能を使うことで、ゲーム中の画面をキャプチャできるということを知りました。

今回は、このスマホから撮影したスクリーンショットの保存先を変更することができましたので紹介します。

 

 

はじめに

 

Unityでは現在の画面のスクリーンショットを撮影することができます。

まず、Unityアプリでゲーム中のスクリーンショットを撮るには以下のコードを使います。

 

public void Capture()
{
  Application.CaptureScreenshot ("name.png");
}

 

このようにすることで「name」という名前のスクリーンショットを保存することができました。

 

スクリーンショットを確認

 

ここで撮影したスクリーンショットはAssetsと同じ階層に保存されるのですが、ここに保存されるとUnity上から確認することができなくなってしまいますよね。

 

このコードを以下のように書き換えることで、Unityから保存されたスクリーンショットを確認することができるようになります。

 

public void Capture()
{
    Application.CaptureScreenshot ("Assets/name.png");
}

 

 

このようにすると「Assets > name.png」に保存することができるようになります。

 

 

同じようにすれば、Assets > ScreenShot > image.pngのような保存方法にすることもできます。もし、ScreenShotというフォルダがない時は保存されないので注意してください。

 

また、iPhoneやAndroidなど、保存先が変わる場合はうまくいかないので対応が必要になります。

 

 

他にも、Unity上では保存してすぐに反映がされないようです。Unity上で確認する時は一度別のアプリケーションに移動してから戻ることで、保存が確認されました。

 

画像をSNSに投稿するなら

 

保存したスクリーンショットをTwitterなどのSNSで画像付きツイートのようにするには「Social Connector」などを使うことで実装できます。

 

iPhoneやAndroidで投稿する場合は保存先が違ったり、スクリーンショットが保存されるのを待たなくてはいけなかったりします。

Social Connectorを使う時にも「Application.CaptureScreenshot」を使うのですが、少し処理が変わります。

 

https://clrmemory.com/unity/socialconnector-pic-error/

 

 

こちらの記事でも紹介しているので、SocialConnectorを使って、Unityアプリにシェア機能の実装を検討している方は確認してみてください。

 

まとめ

 

今回の方法を使えば、Application.CaptureScreenshotで保存される画像の場所を変更することができました。

 

ですが、アプリ上で使えなかったり、反映が遅かったりとあまり使い勝手が良くないと感じました。

 

 

ただ、画面をキャプチャできる機能というのは便利なので、是非参考にしてみてください。

ではまた。

新着記事