Example #1
0
    public void SaveGame(ISavedGameMetadata game, byte[] savedData, TimeSpan totalPlaytime)
    {
        ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

        SavedGameMetadataUpdate.Builder builder = new SavedGameMetadataUpdate.Builder();
        builder = builder
                  .WithUpdatedPlayedTime(totalPlaytime)
                  .WithUpdatedDescription("Saved game at " + DateTime.Now);

        // my customization
        Texture2D savedImage = GameObject.FindGameObjectWithTag("GameManager").GetComponent <GameManager>().saveGameImage;

        // end my customization

        if (savedImage != null)
        {
            // This assumes that savedImage is an instance of Texture2D
            // and that you have already called a function equivalent to
            // getScreenshot() to set savedImage
            // NOTE: see sample definition of getScreenshot() method below
            byte[] pngData = savedImage.EncodeToPNG();
            builder = builder.WithUpdatedPngCoverImage(pngData);
        }
        SavedGameMetadataUpdate updatedMetadata = builder.Build();

        savedGameClient.CommitUpdate(game, updatedMetadata, savedData, OnSavedGameWritten);
    }
Example #2
0
    void WriteSaveGameData(ISavedGameMetadata game)
    {
        try
        {
            ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

            SavedGameMetadataUpdate.Builder builder = new SavedGameMetadataUpdate.Builder();
            builder = builder
                      .WithUpdatedPlayedTime(game.TotalTimePlayed)
                      .WithUpdatedDescription("Saved game at " + DateTime.Now);

            SavedGameMetadataUpdate updatedMetadata = builder.Build();

            SaveData saveData = new SaveData
            {
                CountCoins       = PlayerPrefs.GetInt(VariablesSaveOnPlayerPrefs.CountCollectedCoins),
                CurrentLevel     = PlayerPrefs.GetInt(VariablesSaveOnPlayerPrefs.CurrentLevel),
                TimeSession      = PlayerPrefs.GetInt(VariablesSaveOnPlayerPrefs.MaxTimeGameSession),
                CountKillEnemies = PlayerPrefs.GetInt(VariablesSaveOnPlayerPrefs.CountKillEnemies),
                HighScore        = PlayerPrefs.GetInt(VariablesSaveOnPlayerPrefs.HighScore)
            };

            string json = JsonUtility.ToJson(saveData);
            savedGameClient.CommitUpdate(game, updatedMetadata, JsonStringToByteArray(json), OnSavedGameWritten);
        }
        catch (Exception e)
        {
            Debug.Log(e);
        }
    }
 public void Write(GameData value)
 {
     System.Action action = () =>
     {
         ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;
         savedGameClient.OpenWithAutomaticConflictResolution(Globals.GetFilename <GameData>(), DataSource.ReadCacheOrNetwork, ConflictResolutionStrategy.UseMostRecentlySaved,
                                                             (status, game) =>
         {
             if (status == SavedGameRequestStatus.Success)
             {
                 byte[] binaryData = value.Serialize();
                 SavedGameMetadataUpdate.Builder builder = new SavedGameMetadataUpdate.Builder();
                 builder = builder.WithUpdatedDescription($"Saved at {DateTime.Now}");
                 SavedGameMetadataUpdate updatedMetadata = builder.Build();
                 savedGameClient.CommitUpdate(game, updatedMetadata, binaryData, (s, g) =>
                 {
                     if (s == SavedGameRequestStatus.Success)
                     {
                         Extensions.Log(GetType(), $"Google Play writing completed. Status: {s}; Filename: {g.Filename}; Description: {g.Description};");
                     }
                     else
                     {
                         Extensions.Log(GetType(), $"Google Play writing failed. Status: {s};");
                     }
                 });
             }
             else
             {
                 Extensions.Log(GetType(), $"Couldn't open saved game. Status: {status};");
             }
         });
     };
     PerformAction(action);
 }
Example #4
0
    public void SavePlayerDataCloud(SavedGameRequestStatus status, ISavedGameMetadata meta)
    {
        if (status == SavedGameRequestStatus.Success)
        {
            if (isSaving)
            {
                ISavedGameClient savedGameClient        = PlayGamesPlatform.Instance.SavedGame;
                SavedGameMetadataUpdate.Builder builder = new SavedGameMetadataUpdate.Builder();
                builder = builder
                          .WithUpdatedPlayedTime(meta.TotalTimePlayed.Add(new TimeSpan(0, 0, (int)Time.realtimeSinceStartup)));
                SavedGameMetadataUpdate update = builder.Build();

                savedGameClient.CommitUpdate(meta, update, ObjectToByteArray(GameManager.singleton.playerData), SaveUpdate);
            }
            else
            {
                ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;
                savedGameClient.ReadBinaryData(meta, SaveReadPlayerData);
            }
        }
        else
        {
            Debug.Log("Not succeed! Save Player Data Cloud!");
        }
    }
Example #5
0
    static public void SaveGame(ISavedGameMetadata game, byte[] savedData, TimeSpan totalPlaytime, Action <SavedGameRequestStatus, ISavedGameMetadata> onSavedGameWritten, string description = "")
    {
        ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

        if (string.IsNullOrEmpty(description))
        {
            description = "Saved at " + DateTime.Now;
        }

        SavedGameMetadataUpdate.Builder builder = new SavedGameMetadataUpdate.Builder();
        builder = builder
                  .WithUpdatedPlayedTime(totalPlaytime)
                  .WithUpdatedDescription(description);

        SavedGameMetadataUpdate updatedMetadata = builder.Build();

        savedGameClient.CommitUpdate(game, updatedMetadata, savedData, (status, data) =>
        {
            if (status != SavedGameRequestStatus.Success)
            {
                PlayerLoggedIn = false;
            }

            if (onSavedGameWritten != null)
            {
                onSavedGameWritten.Invoke(status, data);
            }
        });
    }
Example #6
0
        private void WriteGame(ISavedGameMetadata game, byte[] savedData)
        {
            ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

            SavedGameMetadataUpdate.Builder builder = new SavedGameMetadataUpdate.Builder();
            builder = builder.WithUpdatedDescription("Saved game at " + System.DateTime.Now);
            SavedGameMetadataUpdate updatedMetadata = builder.Build();
            savedGameClient.CommitUpdate(game, updatedMetadata, savedData, OnSavedGameWritten);
        }
Example #7
0
    public void WriteSaveGame(ISavedGameMetadata game, byte[] saveData, Action <SavedGameRequestStatus, ISavedGameMetadata> callback)
    {
        if (m_bLogin)
        {
            SavedGameMetadataUpdate updateMetData = new SavedGameMetadataUpdate.Builder().WithUpdatedPlayedTime(TimeSpan.FromMinutes(game.TotalTimePlayed.Minutes + 1)).WithUpdatedDescription("Save at : " + DateTime.Now).Build();

            ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;
            savedGameClient.CommitUpdate(game, updateMetData, saveData, callback);
        }
    }
    void SaveGame(ISavedGameMetadata data, byte[] _byte, TimeSpan playTime)
    {
        ISavedGameClient savedClient = PlayGamesPlatform.Instance.SavedGame;

        SavedGameMetadataUpdate.Builder builder = new SavedGameMetadataUpdate.Builder();

        builder = builder.WithUpdatedPlayedTime(playTime).WithUpdatedDescription("Saved at " + DateTime.Now);

        SavedGameMetadataUpdate updateData = builder.Build();

        savedClient.CommitUpdate(data, updateData, _byte, OnSavedGameWritten);
    }
    public void SaveGame(ISavedGameMetadata _data, byte[] _byte, TimeSpan _playTime)
    {
#if UNITY_ANDROID
        ISavedGameClient savedGame = PlayGamesPlatform.Instance.SavedGame;
        SavedGameMetadataUpdate.Builder builder = new SavedGameMetadataUpdate.Builder();

        builder = builder.WithUpdatedPlayedTime(_playTime).WithUpdatedDescription("Saved at " + DateTime.Now);

        SavedGameMetadataUpdate updateData = builder.Build();
        savedGame.CommitUpdate(_data, updateData, _byte, OnSacedGameWritten);
#endif
    }
    //Save Data To Cloud
    private void WriteSavedGame(ISavedGameMetadata game, byte[] savedData,
                                Action <SavedGameRequestStatus, ISavedGameMetadata> callback)
    {
        SavedGameMetadataUpdate.Builder builder = new SavedGameMetadataUpdate.Builder()
                                                  .WithUpdatedPlayedTime(TimeSpan.FromMinutes(game.TotalTimePlayed.Minutes + 1))
                                                  .WithUpdatedDescription("Saved at: " + System.DateTime.Now);

        SavedGameMetadataUpdate updatedMetadata = builder.Build();
        ISavedGameClient        savedGameClient = PlayGamesPlatform.Instance.SavedGame;

        savedGameClient.CommitUpdate(game, updatedMetadata, savedData, callback);
    }
        private void WriteGame(ISavedGameMetadata game, byte[] savedData, TimeSpan totalPlaytime, Action <SavedGameRequestStatus, ISavedGameMetadata> onSavedGameWritten)
        {
            ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

            SavedGameMetadataUpdate.Builder builder = new SavedGameMetadataUpdate.Builder();
            builder = builder
                      .WithUpdatedPlayedTime(totalPlaytime)
                      .WithUpdatedDescription("Saved game at " + DateTime.Now);
            SavedGameMetadataUpdate updatedMetadata = builder.Build();

            savedGameClient.CommitUpdate(game, updatedMetadata, savedData, onSavedGameWritten);
        }
Example #12
0
    static void SaveGame(ISavedGameMetadata game)
    {
        byte[] savedData = SaveLoad.ToByteArray();

        ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

        SavedGameMetadataUpdate.Builder builder = new SavedGameMetadataUpdate.Builder();
        builder = builder
                  .WithUpdatedDescription("Saved game at " + DateTime.Now);

        SavedGameMetadataUpdate updatedMetadata = builder.Build();

        savedGameClient.CommitUpdate(game, updatedMetadata, savedData, OnSavedGameWritten);
    }
Example #13
0
    private static void SaveGooglePlay(ISavedGameMetadata game, byte[] savedData, TimeSpan totalPlaytime)
    {
        //Debug.Log("SavingGP");
        ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

        SavedGameMetadataUpdate.Builder builder = new SavedGameMetadataUpdate.Builder();
        builder = builder
                  .WithUpdatedPlayedTime(totalPlaytime)
                  .WithUpdatedDescription("Saved game at " + DateTime.Now);

        SavedGameMetadataUpdate updatedMetadata = builder.Build();

        savedGameClient.CommitUpdate(game, updatedMetadata, savedData, OnSavedGameWritten);
    }
Example #14
0
    private void SaveGame(ISavedGameMetadata data, byte[] _byte, TimeSpan playTime)
    {
        // 저장된 게임 열어서 시간비교하고
        ISavedGameClient savedClient = PlayGamesPlatform.Instance.SavedGame;

        SavedGameMetadataUpdate.Builder builder = new SavedGameMetadataUpdate.Builder();

        builder = builder.WithUpdatedPlayedTime(playTime).WithUpdatedDescription("saved at " + DateTime.Now);
        SaveManager.cloudSaveDate = DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss");
        SaveManager.instance.SaveString("cloudSaveDate", SaveManager.cloudSaveDate);

        SavedGameMetadataUpdate updatedData = builder.Build();

        // 데이터들을 Commit해줌
        savedClient.CommitUpdate(data, updatedData, _byte, OnSavedGameWritten);
    }
Example #15
0
        private static void WriteSavedGame(byte[] Data)
        {
            SavedGameMetadataUpdate.Builder builder = new SavedGameMetadataUpdate.Builder()
                                                      .WithUpdatedPlayedTime(TimeSpan.FromMinutes(currentGame.TotalTimePlayed.Minutes + 1))
                                                      .WithUpdatedDescription("Saved at: " + System.DateTime.Now);

            // You can add an image to saved game data (such as as screenshot)
            // byte[] pngData = <PNG AS BYTES>;
            // builder = builder.WithUpdatedPngCoverImage(pngData);

            SavedGameMetadataUpdate updatedMetadata = builder.Build();

            ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

            savedGameClient.CommitUpdate(currentGame, updatedMetadata, Data, OnWriteSavedGames);
        }
Example #16
0
    public void WriteSavedGame(ISavedGameMetadata game, byte[] savedData,
                               Action <SavedGameRequestStatus, ISavedGameMetadata> callback)
    {
        SavedGameMetadataUpdate.Builder builder = new SavedGameMetadataUpdate.Builder()
                                                  .WithUpdatedPlayedTime(TimeSpan.FromMinutes(game.TotalTimePlayed.Minutes + 1))
                                                  .WithUpdatedDescription("Saved at: " + System.DateTime.Now);

        // You can add an image to saved game data (such as as screenshot)
        // byte[] pngData = <PNG AS BYTES>;
        // builder = builder.WithUpdatedPngCoverImage(pngData);

        SavedGameMetadataUpdate updatedMetadata = builder.Build();

        ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

        savedGameClient.CommitUpdate(game, updatedMetadata, savedData, callback);
    }
        //записывает данные сохранения
        public void WriteSaveData(byte[] data)
        {
            if (!IsAuthenticated || data == null || data.Length == 0)
            {
                return;
            }

            TimeSpan currentSpan = DateTime.Now - startDateTime;

            Action OnDataWrite = () =>
            {
                TimeSpan totalPlayTime = currentMetadata.TotalTimePlayed + currentSpan;

                SavedGameMetadataUpdate.Builder builder = new SavedGameMetadataUpdate.Builder()
                                                          .WithUpdatedDescription("Saved game at " + DateTime.Now)
                                                          .WithUpdatedPlayedTime(totalPlayTime);

                SavedGameMetadataUpdate updatedMetadata = builder.Build();

                savedGameClient.CommitUpdate(currentMetadata,
                                             updatedMetadata,
                                             data,
                                             (status, metadata) => currentMetadata = metadata);

                startDateTime = DateTime.Now;
            };

            if (currentMetadata == null)
            {
                OpenSaveData(DEFAULT_SAVE_NAME, (status, metadata) =>
                {
                    Debug.Log("Cloud data write status: " + status.ToString());

                    if (status == SavedGameRequestStatus.Success)
                    {
                        currentMetadata = metadata;
                        OnDataWrite();
                    }
                });

                return;
            }

            OnDataWrite();
        }
Example #18
0
 static void SaveGame()
 {
     Debug.Log("SaveGame()");
     if (Social.localUser.authenticated && savedGameMetadata != null)
     {
         ISavedGameClient savedGameClient        = PlayGamesPlatform.Instance.SavedGame;
         SavedGameMetadataUpdate.Builder builder = new SavedGameMetadataUpdate.Builder();
         TimeSpan totalPlaytime = new TimeSpan(0, 0, Mathf.FloorToInt(Time.realtimeSinceStartup));
         totalPlaytime = totalPlaytime.Add(savedGameMetadata.TotalTimePlayed);
         SavedGameMetadataUpdate updatedMetadata = builder
                                                   .WithUpdatedPlayedTime(totalPlaytime)
                                                   .WithUpdatedDescription(string.Format("Saved game at {0} - Playtime: {1} - {2} coin(s)", DateTime.Now, totalPlaytime, ApplicationController.ac.PlayerData.coins))
                                                   .Build();
         byte[] savedData = ObjectToByteArray(ApplicationController.ac.PlayerData);
         Debug.LogFormat("Trying to CommitUpdate() with savedGameMetadata={0} - updatedMetadata={1} - savedData={2}", savedGameMetadata, updatedMetadata, savedData);
         savedGameClient.CommitUpdate(savedGameMetadata, updatedMetadata, savedData, OnSavedGameWritten);
     }
 }
    void SaveGame(ISavedGameMetadata game, byte[] savedData, TimeSpan totalPlaytime)
    {
        ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

        SavedGameMetadataUpdate.Builder builder = new SavedGameMetadataUpdate.Builder();
        builder = builder
                  .WithUpdatedPlayedTime(totalPlaytime)
                  .WithUpdatedDescription("Saved game at " + DateTime.Now);
        //if (savedImage != null) {
        // This assumes that savedImage is an instance of Texture2D
        // and that you have already called a function equivalent to
        // getScreenshot() to set savedImage
        // NOTE: see sample definition of getScreenshot() method below
        //	byte[] pngData = null;
        //	builder = builder.WithUpdatedPngCoverImage(pngData);
        //}
        SavedGameMetadataUpdate updatedMetadata = builder.Build();

        savedGameClient.CommitUpdate(game, updatedMetadata, savedData, OnSavedGameWritten);
    }
Example #20
0
    /*
     * Does the cloud save.
     * Converts PlayerData into a byte array. Updates play time and saved file description. Then commits.
     * */
    public void CloudSave(SavedGameRequestStatus status, ISavedGameMetadata game)
    {
        Save();

        byte[] data = ToBytes(this.playerData);
        //Calculate play time and total playtime.
        TimeSpan delta = DateTime.Now.Subtract(loadedTime);

        playingTime    += delta;
        this.timePlayed = playingTime;

        ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

        SavedGameMetadataUpdate.Builder builder = new SavedGameMetadataUpdate.Builder();
        builder = builder.WithUpdatedPlayedTime(this.timePlayed).WithUpdatedDescription("Current Level: " + playerData.currentGameLevel + " Current Player Level: " + playerData.playerLevel);

        SavedGameMetadataUpdate updatedMetadata = builder.Build();

        savedGameClient.CommitUpdate(game, updatedMetadata, data, OnSaveWritten);
    }
Example #21
0
        static void SaveGame(ISavedGameMetadata game, byte[] savedData, TimeSpan totalPlaytime)
        {
            ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

            var builder = new SavedGameMetadataUpdate.Builder();

            builder = builder
                      .WithUpdatedPlayedTime(totalPlaytime)
                      .WithUpdatedDescription("Saved game at " + DateTime.Now);
            var savedImage = GetScreenshot();

            Debug.Log("Saved image " + savedImage);
            if (savedImage != null)
            {
                byte[] pngData = savedImage.EncodeToPNG();
                builder = builder.WithUpdatedPngCoverImage(pngData);
            }
            SavedGameMetadataUpdate updatedMetadata = builder.Build();

            savedGameClient.CommitUpdate(game, updatedMetadata, savedData, OnSavedGameWritten);
        }
    //zapis migawki
    #region SaveGameSnap
    void SaveGame(ISavedGameMetadata game, byte[] savedData, TimeSpan totalPlaytime)
    {
        ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

        SavedGameMetadataUpdate.Builder builder = new SavedGameMetadataUpdate.Builder();
        builder = builder
                  .WithUpdatedPlayedTime(totalPlaytime)                       // metadane
                  .WithUpdatedDescription("Saved game at " + DateTime.Now()); // metadane
        if (savedImage != null)
        {
            byte[] pngData = savedImage.EncodeToPNG();
            builder = builder.WithUpdatedPngCoverImage(pngData); // metadane
        }
        SavedGameMetadataUpdate updatedMetadata = builder.Build();

        savedGameClient.CommitUpdate(
            game,
            updatedMetadata,
            savedData,
            OnSavedGameWritten // callback
            );
    }
Example #23
0
    private void OnSavedGameOpened(SavedGameRequestStatus status, ISavedGameMetadata game)
    {
        if (status == SavedGameRequestStatus.Success)
        {
            Debug.Log(DEBUG_KEY + "Old meta data: " + saveGameMetaData);
            Debug.Log(DEBUG_KEY + "New meta data: " + game);
            saveGameMetaData = game;

            if (isSaving)
            {
                isSaving = false;
                Debug.Log(DEBUG_KEY + "Saving game...");
                ISavedGameClient savedGameClient        = PlayGamesPlatform.Instance.SavedGame;
                SavedGameMetadataUpdate.Builder builder = new SavedGameMetadataUpdate.Builder();
                builder = builder
                          .WithUpdatedDescription("Saved game at " + DateTime.Now);
                SavedGameMetadataUpdate updatedMetadata = builder.Build();
                byte[] savedData = SaveLoadController.GetInstance().CreateSaveObject();
                savedGameClient.CommitUpdate(saveGameMetaData, updatedMetadata, savedData, OnSavedGameOpened);
                EventManager.TriggerEvent(EventTypes.DONE_SAVING_GAME);
            }
            else if (isLoading)
            {
                isLoading = false;
                LoadGameData(saveGameMetaData);
            }
        }
        else
        {
            CheckForSaveGame();

            /*Debug.LogError(DEBUG_KEY + "Error opening/updating save game. Request status: " + status);
             * Debug.LogError(DEBUG_KEY + "Metadata: " + game);
             * Debug.LogError(DEBUG_KEY + "filename: " + game.Filename);
             * Debug.LogError(DEBUG_KEY + "isOpen: " + game.IsOpen);
             * Debug.LogError(DEBUG_KEY + "totaltimeplayed: " + game.TotalTimePlayed);
             * Debug.LogError(DEBUG_KEY + "lastmodifiedstamp: " + game.LastModifiedTimestamp);*/
        }
    }
Example #24
0
    static void SaveGame(ISavedGameMetadata game, byte[] savedData, TimeSpan totalPlaytime)
    {
#if UNITY_ANDROID && !UNITY_EDITOR
        ISavedGameClient savedGameClient        = PlayGamesPlatform.Instance.SavedGame;
        SavedGameMetadataUpdate.Builder builder = new SavedGameMetadataUpdate.Builder();
        builder = builder
                  .WithUpdatedPlayedTime(totalPlaytime)
                  .WithUpdatedDescription("Saved game at " + DateTime.Now);

        /*
         * if (savedImage != null)
         * {
         *  // This assumes that savedImage is an instance of Texture2D
         *  // and that you have already called a function equivalent to
         *  // getScreenshot() to set savedImage
         *  // NOTE: see sample definition of getScreenshot() method below
         *
         *  byte[] pngData = savedImage.EncodeToPNG();
         *  builder = builder.WithUpdatedPngCoverImage(pngData);
         * }*/
        SavedGameMetadataUpdate updatedMetadata = builder.Build();
        savedGameClient.CommitUpdate(game, updatedMetadata, savedData, OnSavedGameWritten);
#endif
    }
Example #25
0
    // Write the save game
    void WriteSaveGame(ISavedGameMetadata game, byte [] savedData, Action <SavedGameRequestStatus, ISavedGameMetadata> callback)
    {
        // Check if signed in
        if (PlayGamesPlatform.Instance.localUser.authenticated)
        {
            SavedGameMetadataUpdate updatedMetadata = new SavedGameMetadataUpdate.Builder()
                                                      .WithUpdatedPlayedTime(TimeSpan.FromMinutes(game.TotalTimePlayed.Minutes + 1))
                                                      .WithUpdatedDescription("Saved at: " + DateTime.Now)
                                                      .Build();

            ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;
            savedGameClient.CommitUpdate(game, updatedMetadata, savedData, callback);


//			print ("write success");
//			t2.text = "write success";
//			SaveDataManager.instance.ToJSON ();
//			t2.text = t2.text + " " + SaveDataManager.instance.json;
        }
        else
        {
//			t2.text = "sign in first";
        }
    }
Example #26
0
    public void SaveGame()
    {
        SaveStructure saveST = new SaveStructure();

        saveST.SavePrepare();
#if UNITY_ANDROID
        if (false == PlayGamesPlatform.Instance.localUser.authenticated)
        {
            PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder().EnableSavedGames().Build();
            PlayGamesPlatform.InitializeInstance(config);
            PlayGamesPlatform.DebugLogEnabled = true;
            PlayGamesPlatform.Activate();
            Social.localUser.Authenticate((bool success, string msg) =>
            {
                if (false == success)
                {
                    Debug.Log("저장 실패 - 로그인 불가");
                    return;
                }
            });
        }
        Debug.Log("로그인 돼있음");
        BinaryFormatter bt = new BinaryFormatter();
        MemoryStream    ms = new MemoryStream();
        bt.Serialize(ms, saveST);
        byte[] savingData = ms.ToArray();
        Debug.Log("시리얼라이즈 - 현재 세이빙 데이타 랭쓰" + savingData.Length);
        ms.Dispose();
        ms.Close();
        Debug.Log("시리얼라이즈 완료 , 스트림 클로즈 후 " + savingData.Length);
        ISavedGameClient saveClient = PlayGamesPlatform.Instance.SavedGame;


        saveClient.OpenWithAutomaticConflictResolution(Constant.saveFileNameInGPGSCloud, DataSource.ReadCacheOrNetwork, ConflictResolutionStrategy.UseMostRecentlySaved, (status, metaData) =>
        {
            if (status != SavedGameRequestStatus.Success)
            {
                Debug.Log("저장 실패 - 메타데이타 오픈 불가");
                return;
            }
            Debug.Log("메타데이타 오픈.");

            SavedGameMetadataUpdate updatedMetaData = new SavedGameMetadataUpdate.Builder().WithUpdatedDescription(DateTime.Now + "at saved").Build();
            Debug.Log("저장 준비- 현재 세이빙데이타 렝쓰 " + savingData.Length);
            saveClient.CommitUpdate(metaData, updatedMetaData, savingData, (saveStatus, newMetaData) =>
            {
                if (status != SavedGameRequestStatus.Success)
                {
                    Debug.Log("저장 실패 - 저장이 불가");
                    //    return;
                }
                else
                {
                    st        = saveST;
                    savedLang = saveST.lang;
                    savedGame = true;
                    savedDate = InGameTime.DeepCopy(saveST.savedDate);
                    Debug.Log("저장 성공");
                }
            });
        });
#else
        BinaryFormatter bt   = new BinaryFormatter();
        FileStream      file = File.Create(Constant.saveDataAllPath);
        bt.Serialize(file, saveST);
        file.Close();
#endif
    }
Example #27
0
    public static void WriteSaveData(string fileName, byte[] data, Action <bool> callback)
    {
        if (!isAuthenticated || data == null || data.Length == 0)
        {
            return;
        }

        if (currentSavedGameMetadata != null && currentSavedGameMetadata.IsOpen)
        {
            Debug.Log("GPGSManager - start commit update saved game");

            SavedGameMetadataUpdate.Builder builder         = new SavedGameMetadataUpdate.Builder();
            SavedGameMetadataUpdate         updatedMetadata = builder.Build();
            savedGameClient.CommitUpdate(currentSavedGameMetadata, updatedMetadata, data, (commitStatus, newMetadata) =>
            {
                Debug.Log("GPGSManager - commit saved game request status: " + commitStatus);
                if (commitStatus == SavedGameRequestStatus.Success)
                {
                    callback?.Invoke(true);
                }
                else
                {
                    callback?.Invoke(false);
                }

                OpenSaveData();
            });
        }
        else
        {
            Debug.Log("GPGSManager - start open savedGameMetadata");

            OpenSaveData(fileName, (openStatus, metadata) =>
            {
                if (openStatus == SavedGameRequestStatus.Success)
                {
                    Debug.Log("GPGSManager - start commit update saved game");

                    SavedGameMetadataUpdate.Builder builder = new SavedGameMetadataUpdate.Builder();
                    SavedGameMetadataUpdate updatedMetadata = builder.Build();
                    savedGameClient.CommitUpdate(metadata, updatedMetadata, data, (commitStatus, newMetadata) =>
                    {
                        Debug.Log("GPGSManager - commit saved game request status: " + commitStatus);
                        if (commitStatus == SavedGameRequestStatus.Success)
                        {
                            callback?.Invoke(true);
                        }
                        else
                        {
                            callback?.Invoke(false);
                        }

                        OpenSaveData();
                    });
                }
                else
                {
                    Debug.Log("GPGSManager - open savedGameMetada is failed");
                }
            });
        }
    }