/// <summary> /// Saves all tilemaps to disk. The filename used is the name of the scene. /// </summary> public void SaveAll() { List <MapSaveObject> saveObjectList = new List <MapSaveObject>(); foreach (TileMap map in mapList) { MapSaveObject saveObject = map.Save(); saveObjectList.Add(saveObject); } ManagerSaveObject saveMapObject = new ManagerSaveObject { saveObjectList = saveObjectList.ToArray() }; SaveSystem.SaveObject(saveFileName, saveMapObject, true); Debug.Log("Tilemaps saved"); }
/// <summary> /// Loads all TileMaps into the manager. The softload parameter determines if saved objects should be /// new created, or only reinitalized. /// </summary> /// <param name="softLoad"></param> public void LoadAll(bool softLoad) { if (tileObjectSOs == null) { tileObjectSOs = Resources.FindObjectsOfTypeAll <TileObjectSo>(); } if (softLoad) { mapList.Clear(); } else { DestroyMaps(); } ManagerSaveObject saveMapObject = SaveSystem.LoadObject <ManagerSaveObject>(saveFileName); if (saveMapObject == null) { Debug.Log("No saved maps found. Creating default one."); CreateEmptyMap(); mapList[mapList.Count - 1].IsMain = true; SaveAll(); return; } foreach (MapSaveObject s in saveMapObject.saveObjectList) { TileMap map = null; if (softLoad) { bool found = false; for (int i = 0; i < transform.childCount; i++) { var child = transform.GetChild(i); if (child.name == s.mapName) { map = child.GetComponent <TileMap>(); found = true; } } if (!found) { Debug.LogWarning("Map was not found when reinitializing: " + s.mapName); continue; } map.Setup(s.mapName); map.Load(s, true); Debug.Log("Tilemaps soft loaded"); } else { map = AddTileMap(s.mapName); map.Load(s, false); Debug.Log("Tilemaps loaded from save"); } mapList.Add(map); } }