サーバーにセーブする

スマホでは無くサーバーにデータをセーブする事で
機種変更などを行ってもデータを引き継ぐことができるようになります

以下のスクリプトを適当な所に入れます
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using NCMB; // mBaaSを使うのに必要

public class CloudSave : MonoBehaviour
{
    public class SaveData
    {
        public string name;
        public int[] no = new int[5];
    }
    public static SaveData[] save = new SaveData[3];

    string UserName = "Id";
    string PassWord = "Pass";

    void Start()
    {
        // セーブデータを初期化する
        for (int i = 0; i < save.Length; i++)
        {
            // クラスを初期化する
            save[i] = new SaveData();
        }
    }

    // 新規登録
    public void Signin()
    {
        //NCMBUserのインスタンス作成
        NCMBUser user = new NCMBUser();

        //ユーザ名とパスワードの設定 ※ユーザー名は重複できません
        user.UserName = UserName;
        user.Password = PassWord;

        //会員登録を行う
        user.SignUpAsync((NCMBException e) => {
            if (e != null)
            {
                UnityEngine.Debug.Log("新規登録に失敗: " + e.ErrorMessage);
            }
            else
            {
                UnityEngine.Debug.Log("新規登録に成功");
                // 登録したデータでログインする
                Login();
            }
        });
    }

    // ログイン
    public void Login()
    {
        //NCMBUserのインスタンス作成
        NCMBUser user = new NCMBUser();

        // ユーザー名とパスワードでログイン
        NCMBUser.LogInAsync(UserName, PassWord, (NCMBException e) => {
            if (e != null)
            {
                UnityEngine.Debug.Log("ログインに失敗: " + e.ErrorMessage);
            }
            else
            {
                UnityEngine.Debug.Log("ログインに成功!");
                // IDの取得
                Debug.Log(NCMBUser.CurrentUser.ObjectId);
            }
        });
    }

    // ログアウト
    public void Logout()
    {
        NCMBUser.LogOutAsync((NCMBException e) => {
            if (e != null)
            {
                UnityEngine.Debug.Log("ログアウトに失敗: " + e.ErrorMessage);
            }
            else
            {
                UnityEngine.Debug.Log("ログアウトに成功");
            }
        });
    }

    // セーブ
    public void Save()
    {
        for (int i = 0; i < save.Length; i++)
        {
            // データをjson化
            string MyJson = JsonUtility.ToJson(save[i]);
            // データを保存
            NCMBUser.CurrentUser["Save" + i] = MyJson;
            // 操作結果を保存
            NCMBUser.CurrentUser.SaveAsync();
        }
    }

    // ロード
    public void Load()
    {
        for (int i = 0; i < save.Length; i++)
        {
            // データが存在するなら読み込む
            if (NCMBUser.CurrentUser.ContainsKey("Save" + i))
            {
                // データを読み込み
                string JsonData = "" + NCMBUser.CurrentUser["Save" + i];
                // jsonをデータ化
                save[i] = JsonUtility.FromJson<SaveData>(JsonData);
                Debug.Log(save[i].name);
            }
        }
    }

    void Update()
    {
        // ログイン状態の取得
        if (NCMBUser.CurrentUser != null)
        {
            // ログイン中のユーザーの取得に成功
            UnityEngine.Debug.Log("ログイン中");
        }
        else
        {
            // 未ログインまたは取得に失敗
            UnityEngine.Debug.Log("未ログインまたは取得に失敗");
        }
    }
}
Signin();を実行することで新規アカウントが追加されます
Login();を実行することで既出アカウントにログインします
Logout();を実行する事でサーバからログアウトします
Save();を実行することでmBssSのサーバにデータが保存されます
Lode();を実行することで
mBssSのサーバのデータを読み込みます

アカウントIDを取得する
NCMBUser.CurrentUser.ObjectId

アカウントを削除する
NCMBUser.CurrentUser.DeleteAsync();

認証有効時間を設定する

認証有効時間はmBaaSのサイトから アプリ設定→会員認証設定→認証有効時間 で変更できます



認証有効時間が設定されている場合 その時間が過ぎるまでは アプリを切ってもログ イン状態が続きます
(最高168時間)

サーバーをTwitter連携する

戻る