public void MergeCloudAndLocal(GServiceData serviceData) { if (serviceData == null) { Debug.LogError("GServiceData is null"); } //Впервые запускаем игру? if (GlobalVars.instance.GetIsFirstTime()) { GlobalVars.instance.RemoveIsFirstTime(); //Если заходим впервые, то можем без проблем загрузить облачное сохранение в локальное пространство. Дальше этого делать не нужно if (serviceData.points > GlobalVars.instance.GetPoints()) { GlobalVars.instance.SetUpServiceData(serviceData); Debug.Log("Successfully merged with cloud data!"); } } else { if (GlobalVars.instance.GetPoints() >= serviceData.points) { serviceData.SetUpLocalData(); Debug.Log("Successfully merged with local data!"); } } }
public void SetUpServiceData(GServiceData serviceData) { SetPoints(serviceData.points); SetHighScore(serviceData.highScore); SetMoney(serviceData.money); CopyListPlayers(serviceData.openedPlayerModels); CopyListBackgrounds(serviceData.openedBackgrounds); }
public void OnSavedGameDataRead(SavedGameRequestStatus status, byte[] data) { if (status == SavedGameRequestStatus.Success) { if (gServiceData == null) { gServiceData = new GServiceData(); } gServiceData.SetUpByByteArray(data); MergeCloudAndLocal(gServiceData); Debug.Log("Success: saved game is loaded!"); } else { Debug.LogError("Failed to read game data"); } }
public void SetUpByByteArray(byte[] arr) { if (arr.Length <= 0) { return; } MemoryStream memStream = new MemoryStream(); BinaryFormatter binForm = new BinaryFormatter(); memStream.Write(arr, 0, arr.Length); memStream.Seek(0, SeekOrigin.Begin); GServiceData obj = (GServiceData)binForm.Deserialize(memStream); points = obj.points; highScore = obj.highScore; money = obj.money; openedPlayerModels = obj.openedPlayerModels; openedBackgrounds = obj.openedBackgrounds; }