private void InitUser() { gsAvailable = GS.Available; if (GS.Available) { Debug.Log("GS Available"); initialiationState = InitialiationState.Available; } else { Debug.Log("GS Unavailable"); } if (GS.Available && initialiationState == InitialiationState.Available) { initialiationState = InitialiationState.Authenticating; gsAuthenticated = GS.Authenticated; if (GS.Authenticated) { initialiationState = InitialiationState.Authenticated; Debug.Log("Authenticated"); LoadPlayer(); } else { Debug.Log("Not authenticated"); if (PlayerPrefs.GetInt("login_type") == (int)LoginType.UsernamePassword) { // The user should be logged in with a real account, but isn't. should show an error and prompt to login here. Debug.LogWarning("User should be logged in with user/pass, but isn't authenticated."); initialiationState = InitialiationState.AuthError; } else { gameSparksManager.AuthenticateAnonymous((response) => { if (response.HasErrors) { // TODO: Error screen or something. Debug.Log("Error logging in anonymously"); initialiationState = InitialiationState.AuthError; } else { // MMMk we're logged in kinda. initialiationState = InitialiationState.Authenticated; LoadPlayer(); } }); } } // GS.GameSparksAvailable -= GSAvailableHandler; } }