unity SocialConnector ボタンを押すとスクリーンショットを撮って投稿する
作業
zipをダウンロード
以下のコミットのデータを取ってきた「Facebookでテキストをシェアできなくなったので追記 #19」
SocialConnector以下のディレクトリーをコピーしてAsset以下に置く
スクリーンショットをSDカードに保存するように修正
シーンの修正
Sampleシーンの以下の場所にのSample.cs代わりに以下のスクリプトを入れる
ShootUI.cs
CaptureAndShareImage.cs
using UnityEngine; public class ShootUI : MonoBehaviour { GUIStyle style; void Start() { style = new GUIStyle (); style.fontSize = 100; } int count = 0; void OnGUI() { Rect rect = new Rect (10, 100, 400, 300); GUI.Label (rect, count.ToString (), style); if (GUILayout.Button ("<size=30><b>CaptureAndShareImage</b></size>", GUILayout.Height (60))) { GetComponent<CaptureAndShareImage>().Shoot (); } count++; } }
CaptureAndShareImageの構造説明
ファイル名が同じ場合の、「すでにファイルが存在している時」対処をしなければならない。
つまり、ファイルが上書き状態にあるかどうかの判定処理を追記しなければならない(以下のような存在確認だけではダメ)。
do { //Debug.Log ("Temporary ScreenShot hav not been written yet. " + GetImgPath + fileName); //書込み処理のために1フレーム待つ yield return new WaitForEndOfFrame (); } while (!System.IO.File.Exists (GetImgPath + fileName));
また、Twitter投稿時に同じ画像ファイル名を送ると前に利用した画像が出力されてしまい新しい画像が投稿できないことがあった。
以下の理由により、写真を撮るたびに投稿画像名を変更した。
private void CreateScreenshotsFileName() { fileName = DateTime.Now.ToString ("yyyyMMddhhmmssfff") + ".png"; }
最後に、このオブジェクトの生成時に毎回画像を削除するようにした。
結果