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); } } }