Unity,ローカルのサーバ,S3の順番で連携する
Unity,ローカルのサーバ,S3の順番でなんとか連携してUnityから直接スクリーンショットをアップロードすることをやりたい.
キャプチャするときのコードは以下を参考に作成.
How to save a picture (take screenshot) from a camera in game? - Unity Answers
実際にPNG化してサーバに送るコードは下のようになった.
レンダーテクスチャーをPNG化して,そのバイナリをサーバに送る
サーバ側のコードは下のようになる.
ローカルサーバからS3へキャプチャされた画像をアップロードする
サーバからアップロードされたファイルのURLを返して欲しかったけれども,失敗して大量の画像をアップロードしてしまったので,Unity側でURLを生成している.たぶん,そこのURLからアクセスすれば画像を参照できる.
一応,S3のバケットのパーミッションの設定では,Everyoneを有効にしていたのでちょっと危ないと思った.仕方がないのでとりあえず,UploadとDelete以外は無効にしておく.うっかり,Adminに近いユーザのListを切ってしまったので,何も見れなくなってしまったけれども,コンソール上から変更できたので助かった…….
次は生成されたURLをJS側に送るコードを書く.JSに送ったURLをTweetボタンの中に埋め込んで,ツイートできるようにする.これができるようになれば,ゲーム中のスクリーンショットをつぶやくだけのプログラムが書けたことになる.(ただし,まだEC2の設定が終わっていないので,それは後日行うことにする……)