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"); }
public void Load() //загрузить { _State = State.Loading; SaveConfigList saves = _ioController.Load(); _sceneController.Load(saves, gameConfig.unitSpawnDelay); }
public void Load(SaveConfigList saves, float delay) //запуск загрузки { if (cor != null) { StopCoroutine(cor); } cor = StartCoroutine(LoadRountine(saves, delay)); }
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); }
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(); }