예제 #1
0
 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);
     }
 }
예제 #2
0
        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();
            }
        }