Example #1
0
    public void Save()                                       //сохраняем положение
    {
        int            unitN = _sceneController._units.Count;
        SaveConfigList saves = new SaveConfigList();

        saves.saveConfigs = new SaveConfig[unitN];

        for (int i = 0; i < unitN; i++)
        {
            Enemy enemy = _sceneController._units[i];
            saves.saveConfigs[i] = new SaveConfig
            {
                id     = enemy.name,
                side   = enemy.Side,
                radius = enemy.Radius,
                speed  = enemy.Speed,
                pos    = enemy.Pos,
                target = enemy.Target
            };
        }

        string json = JsonUtility.ToJson(saves);

        PlayerPrefs.SetString(_savePattern, json);
        PlayerPrefs.Save();
        print("saved");
    }
Example #2
0
    public void Load()                          //загрузить
    {
        _State = State.Loading;
        SaveConfigList saves = _ioController.Load();

        _sceneController.Load(saves, gameConfig.unitSpawnDelay);
    }
Example #3
0
 public void Load(SaveConfigList saves, float delay)                                                             //запуск загрузки
 {
     if (cor != null)
     {
         StopCoroutine(cor);
     }
     cor = StartCoroutine(LoadRountine(saves, delay));
 }
Example #4
0
    public SaveConfigList Load()                            //чтение из памяти и парсинг
    {
        string json = "";

        try
        {
            json = PlayerPrefs.GetString(_savePattern);     //на случай отсутствия
        }
        catch (Exception ex)
        {
            Debug.Log(ex);
        }

        SaveConfigList saves = new SaveConfigList();

        saves = JsonUtility.FromJson <SaveConfigList>(json);
        return(saves);
    }
Example #5
0
    IEnumerator LoadRountine(SaveConfigList saves, float delay)                                                     //загрузка из памяти
    {
        for (int i = 0; i < _units.Count; i++)
        {
            DestroyImmediate(_units[i].gameObject);
        }

        _units.Clear();
        float   radiusMinMax = _mainController.gameConfig.unitSpawnMaxRadius;
        Vector2 cellSize     = new Vector2(radiusMinMax, radiusMinMax);

        for (int i = 0; i < saves.saveConfigs.Length; i++)
        {
            InstatiateUnit(saves.saveConfigs[i], cellSize);
            yield return(new WaitForSeconds(delay));
        }

        onReady.Invoke();
    }