#はじめに
【Unity】簡単にビデオ録画ができるアセット NatCorderのメモという記事の続きになります。
https://qiita.com/Formi/items/4b1ea2c53e25033436ea
スマホアプリ内で作成した画像や動画ファイルをカメラロールへ保存・SNSへシェアしたかったので利用しました。
NatCorderと違い無料のAssetになのがありがたいですね!
#NatShare
NatShare は、軽量で使いやすい Unity Engine 用のソーシャル共有 API です。NatShare を使用すると、わずか 3 つのステップでクロスプラットフォームのテキスト、画像、メディアの共有が可能になります。
公式API
https://docs.natsuite.io/natshare/
こちらからインポートできます。
https://assetstore.unity.com/packages/tools/integration/natshare-mobile-sharing-api-117705
##Share方法
###SharePayloadクラス
SharePayloadクラスを生成します。
名前の通りこのオブジェクトを使ってシェアをすることになります。
var sharePayload = new SharePayload();
####SharePayload.AddText
シェアするときに利用するテキストを設定する関数です。
引数にはstring型で渡してあげます。
sharePayload.AddText(stringText);
####SharePayload.AddMedia
シェアしたい「音声・画像・ビデオ」ファイルを設定する関数です。
引数にはstring型でpathを渡してあげます。
sharePayload.AddMedia(mediaPath);
####SharePayload.AddImage
シェアしたい「画像」ファイルを設定する関数です。
引数にはTexture2D型で直接ファイルを指定します。(NatCorderと合わせて使う場合はpathが吐き出されるのでAddMediaでいい気がします)
sharePayload.AddMedia(mediaPath);
####SharePayload.Commit
上記関数で設定した情報をもとにShereをします。
プラットフォーム判別はいい感じにやってくれるので気にしなくても良いです。
sharePayload.Commit();
##カメラロールへの保存方法
###SavePayloadクラス
SharePayloadクラスを生成します。
オブジェクト生成時に保存するフォルダー名を指定します。
用意されている関数がSherePayLoadと同じなので簡単に使えます!
var savePayload = new SavePayload(FOLDER_NAME);
####SavePayload.AddMedia
シェアしたい「音声・画像・ビデオ」ファイルを設定する関数です。
引数にはstring型でpathを渡してあげます。
savePayload.AddMedia(mediaPath);
####SavePayload.AddImage
シェアしたい「画像」ファイルを設定する関数です。
引数にはTexture2D型で直接ファイルを指定します。
savePayload.AddMedia(mediaPath);
####SavePayload.Commit
上記関数で設定した情報をもとにカメラロールでフォルダの作成・保存をします。
プラットフォーム判別はこいつがいい感じにやってくれるので気にしなくても良いです。
savePayload.Commit();
##使い方
使いたいクラスのオブジェクトにAddしてCommitするだけで使えます。
Commit関数はTaskになっていて成功したかどうかをreturnしてくれるので、ちゃんと使いたい方は公式APIをのぞいてみてください。
#まとめ
NatCorderと合わせて使うことでMediaを扱う幅がグッと広がりました!
APIもしっかり用意されていて神Assetだと思います。