Example #1
0
    public void Login()
    {
        // req_login 구조체에 채운다.
        var req_login = new Protocol.req_login();

        req_login.cmd      = 900;
        req_login.userName = null;

        // 테스트
        req_login.id = "*****@*****.**";

        // 시리얼 라이즈
        var json = JsonConvert.SerializeObject(req_login);

        // 포스트로 보낸다.
        if (App.Instance != null)
        {
            App.Instance.reqCoroutine =
                StartCoroutine(Protocol.Post("api/doLogin", json, data => LoginResponse(data)));
        }
    }
    public void Login(Action onComplete)
    {
        // 토큰이 있으면.
        // 구글 + 서버 접속 완료.
        if (Protocol.token != null)
        {
            onComplete();

            // 로그인에 성곡하면 기본 목록을 보여준다.
            GetStages(-1);

            return;
        }

        // 토큰이 없으면.
        // 서버 접속 실패.
        else
        {
            // GPGS 로그인이 안되어 있다면.
            if (Social.localUser.authenticated == false)
            {
                if (App.Instance != null)
                {
                    App.Instance.ShowLoading();
                }

                this.gpgsManager.Init();

                this.gpgsManager.SignIn((result) =>
                {
                    App.Instance.goLoading.SetActive(false);

                    UnityAnalyticsManager.GetInstance().UserLoginCount();
                    // GPGS 로그인에 성공 했다면.
                    if (result)
                    {
                        this.convertCountry();

                        // req_login 구조체에 채운다.
                        var req_login      = new Protocol.req_login();
                        req_login.cmd      = 900;
                        req_login.id       = Social.localUser.id;
                        req_login.userName = Social.localUser.userName;
                        req_login.country  = this.country;
                        req_login.deviceId = SystemInfo.deviceName;

                        // 시리얼 라이즈
                        var json = JsonConvert.SerializeObject(req_login);

                        // 포스트로 보낸다.
                        if (App.Instance != null)
                        {
                            App.Instance.reqCoroutine =
                                StartCoroutine(Protocol.Post("api/doLogin", json, data => LoginResponse(data, onComplete)));
                        }
                    }

                    // GPGS 로그인에 실패 했다면.
                    else
                    {
                        if (App.Instance != null)
                        {
                            App.Instance.ShowMessage("GPGS SignIn Error");
                        }
                        return;
                    }
                });
            }

            // 로그인이 되어있었다면.
            else
            {
                this.convertCountry();

                // req_login 구조체에 채운다.
                var req_login = new Protocol.req_login();
                req_login.cmd      = 900;
                req_login.id       = Social.localUser.id;
                req_login.userName = Social.localUser.userName;
                req_login.country  = this.country;
                req_login.deviceId = SystemInfo.deviceName;

                // 시리얼 라이즈
                var json = JsonConvert.SerializeObject(req_login);

                // 포스트로 보낸다.
                if (App.Instance != null)
                {
                    App.Instance.reqCoroutine =
                        StartCoroutine(Protocol.Post("api/doLogin", json, data => LoginResponse(data, onComplete)));
                }
            }
        }
    }