コード例 #1
0
    /// <summary>
    /// Loads the save to currentSave member
    /// </summary>
    public void LoadSave()
    {
        currentSave = GameProgressEncoder.Decode(PlayerPrefs.GetString("Save"));

        if (currentSave != null)
        {
            loaded = true;
        }
    }
コード例 #2
0
    /// <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);
    }