- Home /
 
 
               Question by 
               JulySellanes · Mar 08, 2019 at 12:02 AM · 
                changegoogle play gameshighscoreaccountreplace  
              
 
              (Google Play Services) When I change my google play account it does not replace the high score
Hi, Im new with Google Play Services but for now all work perfect except for that when I change the account for another, the high score does not change by the high score of the other account, I think is because I save it in local with PlayerPrefab, but I dont know, somebody knows how to fix it?
My script:
 using System;
 using System.Text;
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.UI;
 using UnityEngine.SceneManagement;
 using UnityEngine.SocialPlatforms;
 using GooglePlayGames;
 using GooglePlayGames.BasicApi;
 using GooglePlayGames.BasicApi.SavedGame;
 
 public class PlayGamesScript : MonoBehaviour
 {
     public static PlayGamesScript Instance { get; private set; }
 
     void Start ()
     {
         Instance = this;
 
         GooglePlayGames.BasicApi.PlayGamesClientConfiguration config =
             new GooglePlayGames.BasicApi.PlayGamesClientConfiguration.Builder().EnableSavedGames().Build();
         PlayGamesPlatform.InitializeInstance(config);
         PlayGamesPlatform.Activate();
 
         SignIn();
     }
 
     void Update ()
     {
 
     }
 
     public void SignIn ()
     {
         Social.localUser.Authenticate(success => {
             OpenSave (false);
         });
     }
 
     public void SignOut()
     {
         if (Social.localUser.authenticated)
         {
             PlayGamesPlatform.Instance.SignOut();
         }
     }
 
     #region Saved Games
 
     private string GetSaveString()
     {
         string r = "";
         r += PlayerPrefs.GetInt ("Highscore").ToString ();
         r += "|";
 
         return r;
     }
 
     private void LoadSaveString(string save)
     {
         string[] data = save.Split('|');
         PlayerPrefs.SetInt ("Highscore", int.Parse (data [0]));
     }
 
     private bool isSaving = false;
     public void OpenSave(bool saving)
     {
         if (Social.localUser.authenticated)
         {
             isSaving = saving;
             ((PlayGamesPlatform)Social.Active).SavedGame.OpenWithAutomaticConflictResolution("Save Name",
                 GooglePlayGames.BasicApi.DataSource.ReadCacheOrNetwork,
                 ConflictResolutionStrategy.UseLongestPlaytime, SaveGameOpened);
         }
     }
 
     private void SaveGameOpened(SavedGameRequestStatus status, ISavedGameMetadata meta)
     {
         if (status == SavedGameRequestStatus.Success)
         {
             if (isSaving)
             {
                 byte[] data = System.Text.ASCIIEncoding.ASCII.GetBytes(GetSaveString());
                 SavedGameMetadataUpdate update = new SavedGameMetadataUpdate.Builder().WithUpdatedDescription("Saved at " + DateTime.Now.ToString()).Build();
 
                 ((PlayGamesPlatform)Social.Active).SavedGame.CommitUpdate(meta, update, data, SaveUpdate);
             }
             else
             {
                 ((PlayGamesPlatform)Social.Active).SavedGame.ReadBinaryData(meta, SaveRead);
             }
         }
     }
 
     private void SaveRead(SavedGameRequestStatus status, byte[] data)
     {
         if (status == SavedGameRequestStatus.Success)
         {
             string saveData = System.Text.ASCIIEncoding.ASCII.GetString(data);
             LoadSaveString(saveData);
         }
     }
 
     private void SaveUpdate(SavedGameRequestStatus status, ISavedGameMetadata meta)
     {
 
     }
 
     #endregion /Saved Games
 
     #region Achievements
 
     public static void UnlockAchievement (string id)
     {
         Social.ReportProgress (id, 100, success => { });
     }
 
     public static void IncrementAchievement (string id, int stepsToIncrement)
     {
         PlayGamesPlatform.Instance.IncrementAchievement (id, stepsToIncrement, success => { });
     }
 
     public static void ShowAchievementsUI ()
     {
         if (Social.localUser.authenticated)
         {
             Social.ShowAchievementsUI ();
         }
         else
         {
             PlayGamesScript.Instance.SignIn (); 
         }
     }
 
     #endregion /Achievements
 
     #region Leaderboards
 
     public static void AddScoreToLeaderboard (string leaderboardId, long score)
     {
         Social.ReportScore (score, leaderboardId, success => { });
     }
 
     public static void ShowLeaderboards ()
     {
         if (Social.localUser.authenticated)
         {
             Social.ShowLeaderboardUI();
         }
         else
         {
             PlayGamesScript.Instance.SignIn ();
         }
     }
 
     #endregion /Leaderboards
 }
 
              
               Comment
              
 
               
              Your answer