Unityでゲームを作る場合、サーバーを用意しない限りセーブデータはどうしてもローカルに保存する必要がある。勿論それでも概ね問題は無いと思うが、機種変更や複数台の端末を保有している場合、少し勿体無い。

(iOSはiCloudといった手もある。最近ハマってる Alien Hive というゲーム(Unity Basic製)では、端末間でiCloudによるセーブデータ共有があって驚いた)

とは言え、その程度の事にサーバーを用意するのは面倒臭いなーと思ったので、GoogleDriveやDropBoxにセーブデータを保持出来ないか探してみた所、2つ出てきた。

一つは以前紹介したBoxit。こっちはDropboxと連携する感じ。
tsubakit1.hateblo.jp


んで、もう一つはGithubにあったGoogle Drive for Unity3Dだ。

https://github.com/midworld/unity-googledrive

こっちは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使え? ご最も(´・ω・`)