private void LoadLevelData()
    {
        var saveables = CheckpointManager.FindObjectsOfType <Saveable>();

        for (int i = 0; i < saveables.Length; i++)
        {
            saveables[i].Load(this.levelData.EntityStates[i]);
        }
    }
    public void Save()
    {
        var saveables = CheckpointManager.FindObjectsOfType <Saveable>();

        using (var sw = new FileStream(SavePath, FileMode.Create))
        {
            SaveData saveData = new SaveData
            {
                EntityStates = saveables.Select(c => c.Save()).ToArray(),
                LevelIndex   = SceneManager.GetActiveScene().buildIndex
            };

            this.formatter.Serialize(sw, saveData);
        }
    }