Beispiel #1
0
    public void OnLogin(EzAccount account, GameSession session)
    {
        var request = Gs2Util.LoadGlobalResource <AccountTakeOverRequest>("AccountTakeOverRequest");

        request.gameSession = session;
        SceneManager.LoadScene("AccountTakeOver");
    }
Beispiel #2
0
        /// <summary>
        /// 初期化処理
        /// </summary>
        /// <returns></returns>
        private IEnumerator Initialize(
            Animator animator
            )
        {
            controller.gs2AccountSetting.onLoadAccount.AddListener(
                loadAccount => { this.account = loadAccount; }
                );
            controller.gs2AccountSetting.onCreateAccount.AddListener(
                saveAccount => { this.account = saveAccount; }
                );

            AsyncResult <object> result = null;

            yield return(controller.gs2Client.Initialize(
                             r =>
            {
                result = r;
            }
                             ));

            if (result.Error != null)
            {
                controller.gs2AccountSetting.onError.Invoke(
                    result.Error
                    );
                animator.SetTrigger(Trigger.InitializeFailed.ToString());
                yield break;
            }

            animator.SetTrigger(Trigger.InitializeSucceed.ToString());
        }
Beispiel #3
0
    public void OnLogin(EzAccount account, GameSession session)
    {
        var request = Gs2Util.LoadGlobalResource <MoneyRequest>("MoneyRequest");

        request.gameSession = session;
        StartCoroutine(LoadScene());
    }
Beispiel #4
0
    public void OnLogin(EzAccount account, GameSession session)
    {
        var request = Gs2Util.LoadGlobalResource <MatchmakingRequest>("MatchmakingRequest");

        request.gameSession = session;
        SceneManager.LoadScene("Matchmaking");
    }
Beispiel #5
0
 public EzDoTakeOverResult(
     DoTakeOverResult result
     )
 {
     if (result.item != null)
     {
         Item = new EzAccount(result.item);
     }
 }
Beispiel #6
0
 public EzCreateResult(
     CreateAccountResult result
     )
 {
     if (result.item != null)
     {
         Item = new EzAccount(result.item);
     }
 }
Beispiel #7
0
        /// <summary>
        /// ログインする
        /// </summary>
        /// <returns></returns>
        public IEnumerator Login(
            UnityAction <AsyncResult <GameSession> > callback,
            EzAccount account
            )
        {
            Initialize();

            AsyncResult <GameSession> result1 = null;

            yield return(gs2Client.profile.Login(
                             new Gs2AccountAuthenticator(
                                 gs2Client.profile.Gs2RestSession,
                                 gs2AccountSetting.accountNamespaceName,
                                 gs2AccountSetting.accountEncryptionKeyId,
                                 account.UserId,
                                 account.Password
                                 ),
                             r =>
            {
                result1 = r;
            }
                             ));

            if (result1.Error != null)
            {
                gs2AccountSetting.onError.Invoke(
                    result1.Error
                    );
                callback.Invoke(result1);
                yield break;
            }

            var session = result1.Result;

            AsyncResult <EzSetUserIdResult> result2 = null;

            yield return(gs2Client.client.Gateway.SetUserId(
                             r => { result2 = r; },
                             session,
                             gs2AccountSetting.gatewayNamespaceName,
                             true
                             ));

            if (result2.Error != null)
            {
                gs2AccountSetting.onError.Invoke(
                    result2.Error
                    );
                callback.Invoke(result1);
                yield break;
            }

            gs2AccountSetting.onLogin.Invoke(account, session);
            callback.Invoke(result1);
        }
 public EzAuthenticationResult(
     AuthenticationResult result
     )
 {
     if (result.item != null)
     {
         Item = new EzAccount(result.item);
     }
     Body      = result.body;
     Signature = result.signature;
 }
Beispiel #9
0
        public void OnLogin(EzAccount account, GameSession session)
        {
            Debug.Log("LoginDirector::OnLogin");

            var gs2GameSession = Instantiate(gs2GameSessionPrefab);

            gs2GameSession.name    = gs2GameSessionPrefab.name;
            gs2GameSession.Account = account;
            gs2GameSession.Session = session;

            onCreateGs2GameSessionEvent.Invoke(gs2GameSession);
        }
Beispiel #10
0
 public void OnLogin(EzAccount account, GameSession session)
 {
     {
         var request = Gs2Util.LoadGlobalResource <MoneyRequest>("MoneyRequest");
         request.gameSession = session;
     }
     {
         var request = Gs2Util.LoadGlobalResource <StaminaRequest>("StaminaRequest");
         request.gameSession = session;
     }
     SceneManager.LoadScene("Stamina");
 }
Beispiel #11
0
        /// <summary>
        /// アカウントの永続化処理
        /// </summary>
        /// <returns></returns>
        public IEnumerator SaveAccount(
            UnityAction <AsyncResult <object> > callback,
            EzAccount account
            )
        {
            Initialize();

            _repository.SaveAccount(account);
            gs2AccountSetting.onSaveAccount.Invoke(account);

            callback.Invoke(new AsyncResult <object>(null, null));
            yield break;
        }
Beispiel #12
0
        /// <summary>
        /// アカウント情報を永続化する
        /// </summary>
        /// <param name="account"></param>
        public void SaveAccount(EzAccount account)
        {
            if (File.Exists(AccountDataPath()))
            {
                File.Delete(AccountDataPath());
            }

            MakeAccountDataDirectory();

            var json = new JsonData
            {
                ["userId"]   = account.UserId,
                ["password"] = account.Password
            };
            var writer = new BinaryWriter(new FileStream(AccountDataPath(), FileMode.Create, FileAccess.Write));

            writer.Write(json.ToJson());
            writer.Close();
        }
Beispiel #13
0
    public IEnumerator CreateAndLoginAction()
    {
        if (isSatart)
        {
            yield break;
        }
        string filePath;

#if !UNITY_EDITOR && UNITY_ANDROID
        filePath = Application.persistentDataPath + "/accountData.bad";
#else
        // TODO: 本来は各プラットフォームに対応した処理が必要
        filePath = "./accountData.bad";
#endif

        Debug.Log(filePath);
        // GS2 SDK のクライアントを初期化


        Debug.Log("GS2 SDK のクライアントを初期化");

        profile = new Gs2.Unity.Util.Profile(
            clientId: clientId,
            clientSecret: clientSecret,
            reopener: new Gs2BasicReopener()
            );

        {
            AsyncResult <object> asyncResult = null;

            var current = profile.Initialize(
                r => { asyncResult = r; }
                );

            yield return(current);

            // コルーチンの実行が終了した時点で、コールバックは必ず呼ばれています

            // クライアントの初期化に失敗した場合は終了
            if (asyncResult.Error != null)
            {
                OnError(asyncResult.Error);
                yield break;
            }
        }
        EzAccount account = null;
        gs2 = new Gs2.Unity.Client(profile);
        //ファイルが存在するか確認する。
        if (!File.Exists(filePath))
        {
            // アカウントを新規作成

            Debug.Log("アカウントを新規作成");


            {
                AsyncResult <EzCreateResult> asyncResult = null;

                var current = gs2.Account.Create(
                    r => { asyncResult = r; },
                    accountNamespaceName
                    );

                yield return(current);

                // コルーチンの実行が終了した時点で、コールバックは必ず呼ばれています

                // アカウントが作成できなかった場合は終了
                if (asyncResult.Error != null)
                {
                    OnError(asyncResult.Error);
                    yield break;
                }

                // 作成したアカウント情報を取得
                account = asyncResult.Result.Item;

                //作成したアカウント情報を保存
                BinaryFormatter bf   = new BinaryFormatter();
                FileStream      file = File.Create(filePath);

                try
                {
                    // 指定したオブジェクトを上で作成したストリームにシリアル化する
                    bf.Serialize(file, account);
                }
                finally
                {
                    // ファイル操作には明示的な破棄が必要です。Closeを忘れないように。
                    if (file != null)
                    {
                        file.Close();
                    }
                }
            }
        }



        {
            // バイナリ形式でデシリアライズ
            BinaryFormatter bf = new BinaryFormatter();
            // 指定したパスのファイルストリームを開く
            FileStream file = File.Open(filePath, FileMode.Open);

            try
            {
                // 指定したファイルストリームをオブジェクトにデシリアライズ。
                account = (EzAccount)bf.Deserialize(file);
            }
            finally
            {
                // ファイル操作には明示的な破棄が必要です。Closeを忘れないように。
                if (file != null)
                {
                    file.Close();
                }
            }
        }
        // ログイン

        Debug.Log("ログイン");



        {
            AsyncResult <GameSession> asyncResult = null;
            var current = profile.Login(
                authenticator: new Gs2AccountAuthenticator(
                    session: profile.Gs2Session,
                    accountNamespaceName: accountNamespaceName,
                    keyId: accountEncryptionKeyId,
                    userId: account.UserId,
                    password: account.Password
                    ),
                r => { asyncResult = r; }
                );

            yield return(current);

            // コルーチンの実行が終了した時点で、コールバックは必ず呼ばれています

            // ゲームセッションオブジェクトが作成できなかった場合は終了
            if (asyncResult.Error != null)
            {
                OnError(asyncResult.Error);
                yield break;
            }

            // ログイン状態を表すゲームセッションオブジェクトを取得
            session = asyncResult.Result;
        }
        Debug.Log("ログイン完了");
        titleScene.GetComponent <TitleScene>().flag = true;
    }
Beispiel #14
0
 public void OnDoTakeOver(EzAccount account)
 {
     new AccountRepository().SaveAccount(account);
     SceneManager.LoadScene("AccountRegistrationLogin");
 }