Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void Login(Action doneCallback)
- {
- new LoginTask((result) =>
- {
- playFabId = result.PlayFabId;
- newlyPlayer = result.NewlyPlayer;
- profile = ParseProfile(result.ProfileData);
- doneCallback();
- }, HandleError).Run();
- }
- private class LoginTask
- {
- public Action<LoginTask> successCallback;
- public Action<string, string> errorCallback;
- public string PlayFabId { get; private set; }
- public bool NewlyPlayer { get; private set; }
- public Dictionary<string, UserDataRecord> ProfileData { get; private set; }
- public LoginTask(Action<LoginTask> successCallback, Action<string, string> errorCallback)
- {
- this.successCallback = successCallback;
- this.errorCallback = errorCallback;
- }
- public void Run()
- {
- GoogleAuthenticate();
- }
- private void GoogleAuthenticate()
- {
- Social.localUser.Authenticate((success, error) =>
- {
- if (success)
- {
- var serverAuthCode = PlayGamesPlatform.Instance.GetServerAuthCode();
- PlayfabLogin(serverAuthCode);
- }
- else
- errorCallback("google_auth", error);
- });
- }
- private void PlayfabLogin(string serverAuthCode)
- {
- PlayFabClientAPI.LoginWithGoogleAccount(new LoginWithGoogleAccountRequest()
- {
- ServerAuthCode = serverAuthCode,
- CreateAccount = true
- }, (result) =>
- {
- PlayFabId = result.PlayFabId;
- NewlyPlayer = result.NewlyCreated;
- if (result.NewlyCreated)
- CreateProfile();
- else
- GetProfile();
- }, (playFabError) => errorCallback("playfab_login", playFabError.GenerateErrorReport()));
- }
- private void CreateProfile()
- {
- PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest()
- {
- FunctionName = "createProfile"
- }, (result) =>
- {
- GetProfile();
- }, (error) => errorCallback("create_profile", error.GenerateErrorReport()));
- }
- private void GetProfile()
- {
- PlayFabClientAPI.GetUserReadOnlyData(new GetUserDataRequest(), (result) =>
- {
- ProfileData = result.Data;
- successCallback(this);
- }, (error) => errorCallback("get_profile", error.GenerateErrorReport()));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement