public void FetchSavedGames(Action <UM_SavedGamesMetadataResult> callback)
        {
            UM_SavedGamesMetadataResult loadResult = new UM_SavedGamesMetadataResult();

            EditorSavedGamesList editorGamesList = LoadSavesList();

            foreach (EditorSavedGame game in editorGamesList.Saves)
            {
                loadResult.AddMetadata(game);
            }

            SA_Coroutine.WaitForSeconds(1.5f, () => {
                callback.Invoke(loadResult);
            });
        }
        public void Delete(UM_iSavedGameMetadata game, Action <SA_Result> callback)
        {
            EditorSavedGamesList editorGamesList = LoadSavesList();
            var editorGame = editorGamesList.GetByName(game.Name);

            if (editorGame != null)
            {
                editorGamesList.Saves.Remove(editorGame);
                EditorSaveGames(editorGamesList);
            }

            SA_Coroutine.WaitForSeconds(1.5f, () => {
                callback.Invoke(new SA_Result());
            });
        }
        public void LoadFromPlayerPrefs(UM_iSavedGameMetadata game, bool parseMeta, Action <UM_SavedGameDataLoadResult> callback)
        {
            EditorSavedGamesList editorGamesList = LoadSavesList();
            var editorGame = editorGamesList.GetByName(game.Name);

            UM_SavedGameDataLoadResult loadResult;

            if (editorGame != null)
            {
                var BytesArrayData = editorGame.GameData.ToBytes();
                if (parseMeta)
                {
                    var meta = new UM_SaveInfo();
                    meta.SetProgressValue(BitConverter.ToInt64(BytesArrayData, 0));
                    meta.SetPlayedTimeMillis(BitConverter.ToInt64(BytesArrayData, 8));

                    var userData = new byte[BytesArrayData.Length - 16];
                    Array.Copy(BytesArrayData, 16, userData, 0, userData.Length);
                    loadResult = new UM_SavedGameDataLoadResult(userData, meta);
                }
                else
                {
                    loadResult = new UM_SavedGameDataLoadResult(BytesArrayData, new UM_SaveInfo());
                }
            }
            else
            {
                SA_Error error = new SA_Error(100, "Saved game with name: " + game.Name + " wasn't found");
                loadResult = new UM_SavedGameDataLoadResult(error);
            }

            EditorSaveGames(editorGamesList);

            SA_Coroutine.WaitForSeconds(1.5f, () => {
                callback.Invoke(loadResult);
            });
        }
示例#4
0
        private void EditorSaveGames(EditorSavedGamesList list)
        {
            var json = JsonUtility.ToJson(list);

            PlayerPrefs.SetString(k_EditorSavesKey, json);
        }
        private void EditorSaveGames(EditorSavedGamesList list)
        {
            string json = JsonUtility.ToJson(list);

            PlayerPrefs.SetString(PP_EDITOR_SAVES_KEY, json);
        }