using UnityEngine; using GooglePlayGames; using GooglePlayGames.BasicApi; using GooglePlayGames.BasicApi.SavedGame; using System; using TMPro; public class PlayGamesManager_old : MonoBehaviour { [SerializeField] TMP_Text nicknameText; private score score; [SerializeField] private shopManager shopManager; // Start is called before the first frame update void Start() { this.score = GetComponent(); SignIn(); } public void SignIn() { PlayGamesPlatform.Activate(); PlayGamesPlatform.Instance.Authenticate(ProcessAuthentication); OpenSave(false); } internal void ProcessAuthentication(SignInStatus status) { if (status == SignInStatus.Success) { // Continue with Play Games Services string name = PlayGamesPlatform.Instance.GetUserDisplayName(); nicknameText.text = name; } else { // Disable your integration with Play Games Services or show a login button // to ask users to sign-in. Clicking it should call // PlayGamesPlatform.Instance.ManuallyAuthenticate(ProcessAuthentication). } } #region SavedGames private bool isSaving; public void OpenSave(bool saving) { if(Social.localUser.authenticated) { isSaving = saving; ((PlayGamesPlatform)Social.Active).SavedGame.OpenWithAutomaticConflictResolution("Save", DataSource.ReadCacheOrNetwork, ConflictResolutionStrategy.UseLongestPlaytime, SavedGameOpen); } } private void SavedGameOpen(SavedGameRequestStatus status, ISavedGameMetadata metadata) { if(status == SavedGameRequestStatus.Success) { if(isSaving) // Saving { byte[] myData = System.Text.ASCIIEncoding.ASCII.GetBytes(GetSaveString()); SavedGameMetadataUpdate updateForMetadata = new SavedGameMetadataUpdate.Builder().WithUpdatedDescription("I have played my game at: " + DateTime.Now.ToString()).Build(); ((PlayGamesPlatform)Social.Active).SavedGame.CommitUpdate(metadata, updateForMetadata, myData, SaveCallback); } else // Loading { ((PlayGamesPlatform)Social.Active).SavedGame.ReadBinaryData(metadata, LoadCallBack); } } } private void LoadCallBack(SavedGameRequestStatus status, byte[] data) { if(status == SavedGameRequestStatus.Success) { string loadedData = System.Text.ASCIIEncoding.ASCII.GetString(data); LoadSavedString(loadedData); } } private void LoadSavedString(string loadedData) { string[] cloudStringArr = loadedData.Split('|'); int highscore = int.Parse(cloudStringArr[0]); int coins = int.Parse(cloudStringArr[1]); string ownedPlanes = cloudStringArr[2]; score.SetHighscore(highscore); shopManager.coins = coins; shopManager.ConvertOwnedPlanes(ownedPlanes); } private string GetSaveString() { string dataToSave = ""; dataToSave += ((int)score.highscoreAmount).ToString() + "|" + shopManager.coins.ToString() + "|" + shopManager.GetOwnedPlanesString(); return dataToSave; } private void SaveCallback(SavedGameRequestStatus status, ISavedGameMetadata metadata) { if(status == SavedGameRequestStatus.Success) { Debug.Log("Successfully saved to the cloud"); } else { Debug.Log("Failed to save to cloud"); } } #endregion }