Unityでゲームを作る場合、サーバーを用意しない限りセーブデータはどうしてもローカルに保存する必要がある。勿論それでも概ね問題は無いと思うが、機種変更や複数台の端末を保有している場合、少し勿体無い。
(iOSはiCloudといった手もある。最近ハマってる Alien Hive というゲーム(Unity Basic製)では、端末間でiCloudによるセーブデータ共有があって驚いた)
とは言え、その程度の事にサーバーを用意するのは面倒臭いなーと思ったので、GoogleDriveやDropBoxにセーブデータを保持出来ないか探してみた所、2つ出てきた。
一つは以前紹介したBoxit。こっちはDropboxと連携する感じ。
tsubakit1.hateblo.jp
んで、もう一つはGithubにあったGoogle Drive for Unity3Dだ。
こっちはGoogleDriveと連携する感じで、無料で使えてiOS/Androidに対応しているっぽい。少なくともAndroidはデモがあるので動く気がする。
ちなみにApache License 2.0ライセンス。
ざっと見た感じ凄く簡単に使えそう。
これでAOuth認証
var drive = new GoogleDrive();
drive.ClientID = "CLIENT ID";
drive.ClientSecret = "CLIENT SECRET";var authorization = drive.Authorize();
yield return StartCoroutine(authorization);
これでファイルのダウンロードっぽい。
yield return StartCoroutine(drive.UploadFile("momijimomimomi.txt", "text/plain", bytes));
詳しい内容は明日試す。(予定話)
なお、フォルダにStoreとかあるので将来的にAssetStoreに出す予定なのかもしれない。
入手はお早めに。
まあ、ユーザーが操作出来る場所にセーブデータを置くのはどうかと思わなくも無いけれど、ハイスコアはゲームセンター、基本的なユーザー情報はGoogleDriveに暗号化して配置みたないな事をしても良いんじゃないかなーと思う。(最悪、2回認証入るけどね・・・)
それにGoogleDriveからModを入れたりといった使い方も出来るかもしれないし。
本当はUnityWebPlayerからアクセスしたかったんだけど、どうもOAuth認証通らないんだよね。クロスドメインとかそこらへんが問題?
http://docs-jp.unity3d.com/Documentation/Manual/SecuritySandbox.html
え、Google Play Game Services使え? ご最も(´・ω・`)