/// <summary> /// Saves the paused game status. Writes paused game into file. /// </summary> /// <param name="pausedGameStatus">Paused game status.</param> public void SavePausedLevelGameStatus(PausedGameStatus pausedGameStatus) { var binaryFormatter = new BinaryFormatter(); var file = File.Create(Application.persistentDataPath + playerDataFileName); binaryFormatter.Serialize(file, pausedGameStatus); file.Close(); }
/// <summary> /// Loads the paused game status. Loads gamestatus from the previously saved file. /// </summary> /// <returns>The paused level game status.</returns> public PausedGameStatus LoadPausedLevelGameStatus() { var file = LoadFile(playerDataFileName); PausedGameStatus playerData = null; if (file != null) { var binaryFormatter = new BinaryFormatter(); playerData = (PausedGameStatus)binaryFormatter.Deserialize(file); file.Close(); } return(playerData); }
// Save objects private PausedGameStatus CreateCurrentGameStatus(GameObject playerGameObject, GameObject diveLampObject, string levelPausedFrom, List <float> collectibles, List <GameObject> jellyFishGameObjects) { var playerComponent = playerGameObject.GetComponent <Player>(); var pausedGameStatus = new PausedGameStatus { LevelPausedFrom = levelPausedFrom, Health = playerComponent.health, BreathingGas = playerComponent.breathingGasAmount, PositionX = playerGameObject.transform.position.x, PositionY = playerGameObject.transform.position.y, PositionZ = 0.0f, ScaleX = playerGameObject.transform.localScale.x, ScaleY = playerGameObject.transform.localScale.y, ScaleZ = playerGameObject.transform.localScale.z }; pausedGameStatus.Accessories = new Accessories() { Collectibles = collectibles, DiveLamp = new DiveLamp() { RotationX = diveLampObject.transform.rotation.eulerAngles.x, RotationY = diveLampObject.transform.rotation.eulerAngles.y, RotationZ = diveLampObject.transform.rotation.eulerAngles.z, } }; pausedGameStatus.Hazards = new Hazards() { JellyFishObjects = ConvertJellyFishGameObjects(jellyFishGameObjects) }; return(pausedGameStatus); }