public static MapJsonData LoadMapJsonFile(string fileName) { MapJsonData loadedData = null; TextAsset jsonFile = Resources.Load(fileName) as TextAsset; string rawJson = jsonFile.ToString(); loadedData = JsonUtility.FromJson <MapJsonData>(rawJson); return(loadedData); }
// Load map information, possible tiles and tile sprites public void LoadMapResources() { // Parse Json map data MapJsonData data = JsonLoader.LoadMapJsonFile(worldMap.fileName); mapWidth = data.map_width; mapHeight = data.map_height; numberOfHouses = data.number_of_houses; // Find and add all possible tile types TileJsonData[] loadedTileTypes = data.tiles; foreach (TileJsonData td in loadedTileTypes) { // Tile type is unique // Check if the type is already loaded if (!tileTypes.Contains(td.type)) { Tile newPossibleTile = new Tile(); // Register new tile type tileTypes.Add(td.type); int typeIndex = tileTypes.Count - 1; newPossibleTile.typeID = (ushort)typeIndex; // Load sprites for the given tile type, tile images have the same name as tile types. string spritePath = "Images/" + td.type; Sprite newSprite = Resources.Load <Sprite>(spritePath); loadedSprites.Add(newSprite); // Tile names are not unique // Register tile name if it is new if (!tileNames.Contains(td.name)) { tileNames.Add(td.name); } int nameIndex = tileNames.IndexOf(td.name); newPossibleTile.nameID = (ushort)nameIndex; // Register tile level, tiles with no given level are level 0 newPossibleTile.level = (byte)td.level; possibleTiles.Add(newPossibleTile); } } }