Example #1
0
    private void LoadMap(MapData mapData)
    {
        m_mapName.value = mapData.MapName;

        m_tilesData.Clear();
        m_mapEditorView.Clear();

        var row   = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/Editor/Row.uxml");
        var rowSS = AssetDatabase.LoadAssetAtPath <StyleSheet>("Assets/Editor/Row.uss");

        var tile   = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/Editor/Tile.uxml");
        var tileSS = AssetDatabase.LoadAssetAtPath <StyleSheet>("Assets/Editor/Tile.uss");

        for (var i = 0; i < mapData.XSize; i++)
        {
            var RowUxml = row.CloneTree();
            RowUxml.styleSheets.Add(rowSS);
            m_mapEditorView.Add(RowUxml);
            var rowInstance = RowUxml.Q <VisualElement>("Row");

            var rowData = new List <TileData>();
            m_tilesData.Add(rowData);
            for (var j = 0; j < mapData.YSize; j++)
            {
                var tileUxml = tile.CloneTree();
                tileUxml.styleSheets.Add(tileSS);
                rowInstance.Add(tileUxml);
                var tileData = new TileData();
                tileData.Instantiate(tileUxml.Q <Button>("Tile"));
                rowData.Add(tileData);
                var tileTuple = mapData.GetTileDataAtPos(i * mapData.YSize + j);
                tileData.AssignTileFromTileTuple(tileTuple);
            }
        }
    }