private void BuildMap(SerializableMap loadedMap) { if (terrainElementPrefab == null) { Debug.LogError($"{gameObject.name}: {nameof(terrainElementPrefab)} is not set. Could not build the map."); return; } if (characterPrefab == null) { Debug.LogError($"{gameObject.name}: {nameof(characterPrefab)} is not set. Could not build the map."); return; } terrainList = new List <TerrainElementHandler>(); foreach (var terrainElement in loadedMap.terrainArray) { TerrainElementHandler loadedElement = Instantiate <TerrainElementHandler>(terrainElementPrefab, transform); loadedElement.InitializeTerrain(terrainElement); terrainList.Add(loadedElement); } charactersList = new List <CharacterHandler>(); foreach (var characterElement in loadedMap.characterArray) { CharacterHandler loadedElement = Instantiate <CharacterHandler>(characterPrefab, transform); loadedElement.InitializeCharacter(characterElement); charactersList.Add(loadedElement); } }
public void LoadMap(string mapFilePath) { string mapJSON = File.ReadAllText(mapFilePath); SerializableMap loadedMap = JsonUtility.FromJson <SerializableMap>(mapJSON); if (loadedMap.IsInitialized() == false) { Debug.LogError($"Map file has wrong data format or loaded map was empty. {mapFilePath}"); return; } ClearMap(); BuildMap(loadedMap); if (OnMapLoaded != null) { OnMapLoaded(); } }