Пример #1
0
    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);
    }
Пример #2
0
    // 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);
            }
        }
    }