problem saving data to cloud (google services) and i can't figure out where i did it wrong .unity3D
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using GooglePlayGames; using GooglePlayGames.BasicApi.SavedGame; using System;
public class SaveCloud : MonoBehaviour {
private bool isSaving = false;
void Start ()
{
PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder().EnableSavedGames().Build();
PlayGamesPlatform.InitializeInstance(config);
PlayGamesPlatform.Activate ();
OnConnectionResponse (PlayGamesPlatform.Instance.localUser.authenticated);
EncryptedPlayerPrefs.IntialisationStart ();
OnConnectClick ();
}
void Update ()
{
achievements ();
}
public void OnConnectClick()
{
Social.localUser.Authenticate ((bool success) => { OnConnectionResponse (success); });
}
private void OnConnectionResponse(bool authentificated)
{
if (authentificated)
{
UnlockAchievement (GPGSIds.achievement_login);
OpenSave (false);
//online
}
else
{
//soloplayer
}
}
public void achievement()
{
if (Social.localUser.authenticated)
{
Social.ShowAchievementsUI();
}
}
void achievements(){
switch (EncryptedPlayerPrefs.GetInt ("level")) {
case 50:
UnlockAchievement (GPGSIds.achievement_destroy_10_cars);
break;
case 250:
UnlockAchievement (GPGSIds.achievement_destroy_50_cars);
break;
}
switch (EncryptedPlayerPrefs.GetInt ("troph")) {
case 10:
UnlockAchievement (GPGSIds.achievement_level_10);
break;
case 20:
UnlockAchievement (GPGSIds.achievement_level_20);
break;
default:
break;
}
UnlockLeaderBoard (EncryptedPlayerPrefs.GetInt ("troph"));
}
public void UnlockAchievement(string achievementid)
{
Social.ReportProgress (achievementid, 100.0f, (bool success) => {
Debug.Log ("unlocked");
});
}
public void leaderboard()
{
if (Social.localUser.authenticated)
{
Social.ShowLeaderboardUI();
}
}
public void UnlockLeaderBoard(int score)
{
Social.ReportScore (score, GPGSIds.leaderboard_highscore, (bool success) => {
Debug.Log ("unlocked");
});
}
public void OpenSave(bool saving)
{
if (Social.localUser.authenticated)
{
isSaving = saving;
((PlayGamesPlatform)Social.Active).SavedGame.OpenWithAutomaticConflictResolution("PolyFight",GooglePlayGames.BasicApi.DataSource.ReadCacheOrNetwork,ConflictResolutionStrategy.UseLongestPlaytime,SavedGameOpened);
}
}
public void SavedGameOpened(SavedGameRequestStatus status,ISavedGameMetadata meta)
{
Debug.Log ("savedgameopened");
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, SavedUpdate);
}
else
{
((PlayGamesPlatform)Social.Active).SavedGame.ReadBinaryData (meta, SaveRead);
}
}
}
public void SavedUpdate(SavedGameRequestStatus status,ISavedGameMetadata meta)
{
Debug.Log ("SavedUpdate "+status);
}
public void SaveRead(SavedGameRequestStatus status,byte[] data)
{
string saveData = System.Text.ASCIIEncoding.ASCII.GetString (data);
LoadSaveString (saveData);
}
//SaveCloud = Level | Coins | Gems | Trophy | Cars (Click) ( Application Vers FireBase )
private string GetSaveString()
{
string carsNumber = "";
for (int i = 0; i < 19; i++)
{
if (i == 0)
carsNumber += EncryptedPlayerPrefs.GetInt (i + "valid").ToString ()+",";
if( i != 0 && i < 18)
if (EncryptedPlayerPrefs.GetInt (i + "valid") != 0)
carsNumber += EncryptedPlayerPrefs.GetInt (i + "valid").ToString ()+",";
if(i == 18)
if (EncryptedPlayerPrefs.GetInt (i + "valid") != 0)
carsNumber += EncryptedPlayerPrefs.GetInt (i + "valid").ToString ();
else
carsNumber+="0";
}
EncryptedPlayerPrefs.SetString ("SaveCloud",EncryptedPlayerPrefs.GetInt ("level")+"|"+EncryptedPlayerPrefs.GetInt ("coins")+"|"+EncryptedPlayerPrefs.GetInt ("gems")+"|"+EncryptedPlayerPrefs.GetInt ("troph")+"|"+carsNumber);
return EncryptedPlayerPrefs.GetString ("SaveCloud");
}
//SaveCloud = Level | Coins | Gems | Trophy | Cars (Click) ( FireBase Vers Application)
private void LoadSaveString(string saveCloud)
{
string[] data = saveCloud.Split ('|');
EncryptedPlayerPrefs.SetInt ("level",int.Parse(data[0]));
EncryptedPlayerPrefs.SetInt ("coins",int.Parse(data[1]));
EncryptedPlayerPrefs.SetInt ("gems",int.Parse(data[2]));
EncryptedPlayerPrefs.SetInt ("troph",int.Parse(data[3]));
string CarsNumeroClick = data[4].ToString();
string[] Carsdata = CarsNumeroClick.Split (',');
for (int i = 0; i < Carsdata.Length; i++)
{
EncryptedPlayerPrefs.SetInt (Carsdata [i] + "valid", int.Parse(Carsdata [i]));
}
}
}
Comment
achievement and leaderboard works fine ,i uploaded the apk to google play (alpha mode) but i dnt think its saving nor loading data
Your answer
![](https://koobas.hobune.stream/wayback/20220612160135im_/https://answers.unity.com/themes/thub/images/avi.jpg)