/// <summary> /// Loads the save to currentSave member /// </summary> public void LoadSave() { currentSave = GameProgressEncoder.Decode(PlayerPrefs.GetString("Save")); if (currentSave != null) { loaded = true; } }
/// <summary> /// Saves the game's state /// </summary> public void SaveGameState(MazeData maze, GameObject localPlayer, ScoreManager score) { if (currentSave == null) { currentSave = new GameProgress(); } currentSave.oldMaze = true; // Save enemies currentSave.enemies = new List <EnemySave>(); for (int i = 0; i < maze.enemies.Count; i++) { EnemySave enemySave = new EnemySave(); Enemy enemy = maze.enemies[i]; enemySave.position = enemy.transform.position; enemySave.dead = enemy.dead; currentSave.enemies.Add(enemySave); } // Save player currentSave.player = new EntitySave(); Vector3 pos = localPlayer.transform.position; pos.x = ((int)pos.x / 2) * 2f; pos.y = ((int)pos.y / 2) * 2f; pos.z = ((int)pos.z / 2) * 2f; currentSave.player.position = pos; // save score currentSave.score = score.currentScore; // save seed currentSave.mazeSeed = maze.seed; // save locally string saveString = GameProgressEncoder.Encode(currentSave); PlayerPrefs.SetString("Save", saveString); }