예제 #1
0
    public void OpenSavedGame(string filename, bool isLoad = false, LoadDelegate loadFailCB = null)
    {
        _loadFailCallback = loadFailCB;

        if (!bLogin)
        {
            LoginGPGS();
        }

        if (bLogin)
        {
            ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

            if (isLoad)
            {
                savedGameClient.OpenWithAutomaticConflictResolution(filename, DataSource.ReadCacheOrNetwork,
                                                                    ConflictResolutionStrategy.UseLongestPlaytime, OnSavedGameOpenedForLoad);
            }
            else // is Save
            {
                savedGameClient.OpenWithAutomaticConflictResolution(filename, DataSource.ReadCacheOrNetwork,
                                                                    ConflictResolutionStrategy.UseLongestPlaytime, OnSavedGameOpenedForSave);
            }
        }
        else if (isLoad && loadFailCB != null)
        {
            LoadRoutineEndCallBack(success: false);
        }
    }
예제 #2
0
    void OpenSavedGame(string fileName, bool saved)
    {
        ISavedGameClient savedClient = PlayGamesPlatform.Instance.SavedGame;

        if (saved == true)
        {
            savedClient.OpenWithAutomaticConflictResolution(fileName, DataSource.ReadCacheOrNetwork, ConflictResolutionStrategy.UseLongestPlaytime, OnSavedGameOpenedToSave);
        }
        else if (saved == false)
        {
            savedClient.OpenWithAutomaticConflictResolution(fileName, DataSource.ReadCacheOrNetwork, ConflictResolutionStrategy.UseLongestPlaytime, OnSavedGameOpenedToRead);
        }
    }
예제 #3
0
    public static void OpenSavedGame(string filename, Action <SavedGameRequestStatus, ISavedGameMetadata> callback)
    {
        ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

        savedGameClient.OpenWithAutomaticConflictResolution(filename, DataSource.ReadCacheOrNetwork,
                                                            ConflictResolutionStrategy.UseLongestPlaytime, callback);
    }
예제 #4
0
    public static PlayerData LoadData()
    {
        Debug.Log("path: " + Application.persistentDataPath);
        saving = false;
        if (PlayGamesPlatform.Instance.IsAuthenticated())
        {
            //  Debug.Log("Try to load from GP");
            ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

            savedGameClient.OpenWithAutomaticConflictResolution(saveName, DataSource.ReadCacheOrNetwork,
                                                                ConflictResolutionStrategy.UseLongestPlaytime, OnSavedGameOpened);
        }
        if (loadedData == null)
        {
            return(LoadLocal());
        }
        else
        {
            if (String.IsNullOrEmpty(loadedData.playerName))
            {
                PhotonNetwork.NickName = PlayGamesPlatform.Instance.GetUserId();
            }
        }
        return(loadedData);
    }
 public void Read()
 {
     System.Action action = () =>
     {
         ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;
         savedGameClient.OpenWithAutomaticConflictResolution(Globals.GetFilename <GameData>(), DataSource.ReadCacheOrNetwork, ConflictResolutionStrategy.UseMostRecentlySaved,
                                                             (status, game) =>
         {
             if (status == SavedGameRequestStatus.Success)
             {
                 savedGameClient.ReadBinaryData(game, (s, b) =>
                 {
                     if (s == SavedGameRequestStatus.Success)
                     {
                         Extensions.Log(GetType(), $"Google Play reading completed. Status: {s}; Filename: {game.Filename}; Description: {game.Description};");
                         var value = b.Deserialize <GameData>();
                         OnSavedGameRead(new SavedGameEventArgs(value));
                     }
                     else
                     {
                         Extensions.Log(GetType(), $"Google Play reading failed. Status: {s};");
                     }
                 });
             }
             else
             {
                 Extensions.Log(GetType(), $"Couldn't open saved game. Status: {status};");
             }
         });
     };
     PerformAction(action);
 }
 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);
 }
예제 #7
0
    void OpenSavedGameForLoad(string filename)
    {
        ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

        savedGameClient.OpenWithAutomaticConflictResolution(filename, DataSource.ReadCacheOrNetwork,
                                                            ConflictResolutionStrategy.UseLongestPlaytime, LoadGameData);
    }
예제 #8
0
    public void OpenSavedGame(string filename)
    {
        ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

        savedGameClient.OpenWithAutomaticConflictResolution(filename, DataSource.ReadCacheOrNetwork,
                                                            ConflictResolutionStrategy.UseLastKnownGood, OnSavedGameOpened);
    }
예제 #9
0
        static void OpenSavedGame(string filename)
        {
            Debug.Log("Name " + filename);
            ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

            savedGameClient.OpenWithAutomaticConflictResolution(filename, DataSource.ReadCacheOrNetwork,
                                                                ConflictResolutionStrategy.UseLongestPlaytime, OnSavedGameOpened);
        }
예제 #10
0
    /// <summary>
    /// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ///
    ///     DELETE GAME SAVE
    ///
    /// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// </summary>

    /// Delete Game Data
    void DeleteGameData(string filename)
    {
        // Open the file to get the metadata.
        ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

        savedGameClient.OpenWithAutomaticConflictResolution(filename, DataSource.ReadCacheOrNetwork,
                                                            ConflictResolutionStrategy.UseLongestPlaytime, DeleteSavedGame);
    }
예제 #11
0
    public void OpenSaveGame(string _fileName, bool _saved)
    {
#if UNITY_ANDROID
        ISavedGameClient savedGame = PlayGamesPlatform.Instance.SavedGame;

        //요청
        if (_saved)
        {
            //save
            savedGame.OpenWithAutomaticConflictResolution(_fileName, DataSource.ReadCacheOrNetwork, ConflictResolutionStrategy.UseLongestPlaytime, OnSavedGamePendedTOsave);
        }
        else
        {
            //load
            savedGame.OpenWithAutomaticConflictResolution(_fileName, DataSource.ReadCacheOrNetwork, ConflictResolutionStrategy.UseLongestPlaytime, OnSavedGamePendedTOLoad);
        }
#endif
    }
예제 #12
0
    //Load From Cloud Saved Data
    private void ReadSavedGame(string filename,
                               Action <SavedGameRequestStatus, ISavedGameMetadata> callback)
    {
        ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

        savedGameClient.OpenWithAutomaticConflictResolution(filename,
                                                            DataSource.ReadNetworkOnly, //キャッシュは読まない
                                                            ConflictResolutionStrategy.UseLongestPlaytime,
                                                            callback);
    }
예제 #13
0
    private static void OpenSaveData(string fileName, Action <SavedGameRequestStatus, ISavedGameMetadata> onDataOpen)
    {
        if (!isAuthenticated)
        {
            onDataOpen(SavedGameRequestStatus.AuthenticationError, null);
            return;
        }

        savedGameClient.OpenWithAutomaticConflictResolution(fileName, DataSource.ReadCacheOrNetwork, ConflictResolutionStrategy.UseLastKnownGood, onDataOpen);
    }
예제 #14
0
        private static void ReadSavedGame(string filename)
        {
            ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

            savedGameClient.OpenWithAutomaticConflictResolution(
                filename,
                DataSource.ReadCacheOrNetwork,
                ConflictResolutionStrategy.UseLongestPlaytime,
                OnReadSavedGamesComplete);
        }
        private void OpenSavedGame(string saveId, Action <SavedGameRequestStatus, ISavedGameMetadata> onSavedGameOpened)
        {
            ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

            savedGameClient.OpenWithAutomaticConflictResolution(
                saveId,
                DataSource.ReadCacheOrNetwork,
                ConflictResolutionStrategy.UseLongestPlaytime,
                onSavedGameOpened
                );
        }
예제 #16
0
    private void OpenSavedGame(string filename)
    {
        if (filename == string.Empty || filename == null)
        {
            Debug.Log(DEBUG_KEY + "Filename passed is empty");
        }
        ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

        savedGameClient.OpenWithAutomaticConflictResolution(filename, DataSource.ReadCacheOrNetwork,
                                                            ConflictResolutionStrategy.UseLongestPlaytime, OnSavedGameOpened);
    }
예제 #17
0
    //wczytywanie migawki
    #region LoadGameSnap
    void OpenSavedGame(string filename)
    {
        ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

        savedGameClient.OpenWithAutomaticConflictResolution(
            filename,
            DataSource.ReadCacheOrNetwork,
            ConflictResolutionStrategy.UseLongestPlaytime, // strategia konfliktów
            OnSavedGameOpened                              // callback
            );
    }
예제 #18
0
    public void OpenSavedGame(string filename)
    {
        if (CheckIfThePlayerIsValid() == false)
        {
            return;
        }

        ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

        savedGameClient.OpenWithAutomaticConflictResolution(filename, DataSource.ReadCacheOrNetwork,
                                                            ConflictResolutionStrategy.UseLongestPlaytime, OnSavedGameOpened);
    }
예제 #19
0
    public void DeleteGameData(string filename)
    {
        if (CheckIfThePlayerIsValid() == false)
        {
            return;
        }

        // Open the file to get the metadata.
        ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

        savedGameClient.OpenWithAutomaticConflictResolution(filename, DataSource.ReadCacheOrNetwork,
                                                            ConflictResolutionStrategy.UseLongestPlaytime, DeleteSavedGame);
    }
예제 #20
0
        //открывает данные сохранения
        void OpenSaveData(string fileName, Action <SavedGameRequestStatus, ISavedGameMetadata> OnDataOpen)
        {
            if (!IsAuthenticated)
            {
                OnDataOpen(SavedGameRequestStatus.AuthenticationError, null);
                return;
            }

            savedGameClient.OpenWithAutomaticConflictResolution(fileName,
                                                                DataSource.ReadCacheOrNetwork,
                                                                ConflictResolutionStrategy.UseLongestPlaytime,
                                                                OnDataOpen);
        }
예제 #21
0
    static void OpenSavedGame(string filename, bool bSave)

    {
#if UNITY_ANDROID && !UNITY_EDITOR
        ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

        if (savedGameClient == null)
        {
            Debug.LogWarning("클라우드 셋팅이 잘못되었습니다");
            SaveManager.OnCloudLoadFailed();
            return;
        }

        if (bSave)
        {
            savedGameClient.OpenWithAutomaticConflictResolution(filename, DataSource.ReadCacheOrNetwork, ConflictResolutionStrategy.UseLongestPlaytime, OnSavedGameOpenedToSave); //저장루틴진행
        }
        else
        {
            savedGameClient.OpenWithAutomaticConflictResolution(filename, DataSource.ReadCacheOrNetwork, ConflictResolutionStrategy.UseLongestPlaytime, OnSavedGameOpenedToRead); //로딩루틴 진행
        }
#endif
    }
예제 #22
0
 public static void OpenSavedGameThenSave()
 {
     try {
         if (Social.localUser.authenticated)
         {
             ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;
             savedGameClient.OpenWithAutomaticConflictResolution(SAVE_FILENAME, DataSource.ReadCacheOrNetwork,
                                                                 ConflictResolutionStrategy.UseLongestPlaytime, SaveOnSavedGameOpened);
         }
     }
     catch (Exception e) {
         Debug.LogError(e);
     }
 }
예제 #23
0
    // Read the save game
    void ReadSaveGame(string filename, Action <SavedGameRequestStatus, ISavedGameMetadata> callback)
    {
        // Check if signed in
        if (PlayGamesPlatform.Instance.localUser.authenticated)
        {
//			print ("6");
            ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

            savedGameClient.OpenWithAutomaticConflictResolution(filename,
                                                                DataSource.ReadCacheOrNetwork,
                                                                ConflictResolutionStrategy.UseLongestPlaytime,
//				ConflictResolutionStrategy.UseOriginal,
                                                                callback);
        }
    }
예제 #24
0
    IEnumerator Save()
    {
        while (CheckLogin() == false)
        {
            Login();
            yield return(new WaitForSeconds(0.1f));
        }
        bIsSaving = true;
        string id       = Social.localUser.id;
        string fileName = string.Empty;

        fileName = string.Format(dataName, id);
        ISavedGameClient savedClient = PlayGamesPlatform.Instance.SavedGame;

        savedClient.OpenWithAutomaticConflictResolution(fileName, DataSource.ReadCacheOrNetwork, ConflictResolutionStrategy.UseLongestPlaytime, OnSavedGameOpenedToSave);
    }
예제 #25
0
    /// <summary>
    /// Initialize Google Play Services and authentificate user. After authentification load saved data from cloud.
    /// </summary>
    /// <param name="saving">Is saving data or loading data</param>
    /// <param name="isPlayerData">Type of object to read/save</param>
    /// <param name="obj">Object to read/save</param>
    public void CloudSaves(bool saving, bool isPlayerData, object obj)
    {
        isSaving = saving;

        if (isPlayerData)
        {
            ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;
            savedGameClient.OpenWithAutomaticConflictResolution("playerdata", GooglePlayGames.BasicApi.DataSource.ReadCacheOrNetwork,
                                                                ConflictResolutionStrategy.UseLongestPlaytime, SavePlayerDataCloud);
        }
        else
        {
            ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;
            savedGameClient.OpenWithAutomaticConflictResolution("playerstats", GooglePlayGames.BasicApi.DataSource.ReadCacheOrNetwork,
                                                                ConflictResolutionStrategy.UseLongestPlaytime, SavePlayerStatsCloud);
        }
    }
예제 #26
0
 public void OpenSavedGame()
 {
     try
     {
         currentMetadata = null;
         ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;
         savedGameClient.OpenWithAutomaticConflictResolution(
             saveFilename,
             DataSource.ReadCacheOrNetwork,
             ConflictResolutionStrategy.UseLongestPlaytime,
             OnSavedGameOpened);
     }
     catch (Exception e)
     {
         Debug.Log(e);
     }
 }
예제 #27
0
    public void DeleteSavedGame()   //저장된 게임 지워버리기.
    {
#if UNITY_ANDROID
        st        = null;
        savedDate = null;
        savedGame = false;
        savedLang = E_Language.KOREAN;
        // if (!IsThereSavedGame()) return;

        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;
                }
            });
        }

        ISavedGameClient saveClient = PlayGamesPlatform.Instance.SavedGame;
        saveClient.OpenWithAutomaticConflictResolution(Constant.saveFileNameInGPGSCloud, DataSource.ReadCacheOrNetwork, ConflictResolutionStrategy.UseMostRecentlySaved, (status, metaData) =>
        {
            if (status != SavedGameRequestStatus.Success)
            {
                Debug.Log("삭제 실패 - 메타데이타 오픈 불가");
                // return;
            }
            else
            {
                saveClient.Delete(metaData);
            }
        });
        return;
#else
        File.Delete(Constant.saveDataAllPath);
#endif
    }
예제 #28
0
 void Open(ISavedGameClient savedGameClient, bool useAutomaticResolution, ConflictCallback conflictCallback,
           Action <SavedGameRequestStatus, ISavedGameMetadata> completedCallback)
 {
     if (useAutomaticResolution)
     {
         savedGameClient.OpenWithAutomaticConflictResolution(
             PlatformSaveUtil.remoteSaveFileName,
             DataSource.ReadNetworkOnly,
             ConflictResolutionStrategy.UseLongestPlaytime,
             completedCallback);
     }
     else
     {
         savedGameClient.OpenWithManualConflictResolution(
             PlatformSaveUtil.remoteSaveFileName,
             DataSource.ReadNetworkOnly,
             true,
             conflictCallback,
             completedCallback);
     }
 }
예제 #29
0
    static public void OpenSavedGame(string filename, Action <SavedGameRequestStatus, ISavedGameMetadata> onSavedGameOpened)
    {
        ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

        savedGameClient.OpenWithAutomaticConflictResolution(
            filename,
            DataSource.ReadCacheOrNetwork,
            ConflictResolutionStrategy.UseLongestPlaytime,
            (status, data) =>
        {
            if (status != SavedGameRequestStatus.Success)
            {
                PlayerLoggedIn = false;
            }

            if (onSavedGameOpened != null)
            {
                onSavedGameOpened.Invoke(status, data);
            }
        }
            );
    }
예제 #30
0
    public static void Save(PlayerData save)
    {
        if (save == null)
        {
            //Debug.LogWarning("Save is empty");
            return;
        }
        loadedData = save;
        SaveLocal(save);//Always save a local game
        saving = true;
        if (PlayGamesPlatform.Instance.IsAuthenticated())
        {
            //Save on Googe play
            ISavedGameClient savedGameClient = PlayGamesPlatform.Instance.SavedGame;

            savedGameClient.OpenWithAutomaticConflictResolution(saveName, DataSource.ReadCacheOrNetwork,
                                                                ConflictResolutionStrategy.UseLongestPlaytime, OnSavedGameOpened);
        }
        else
        {
            //Debug.Log("Not authenticated GP");
        }
    }