void DrawTileSets() { if (tmxFile.tileSets == null) { return; } if (tileMap.tileSetMaterials == null || tileMap.tileSetMaterials.Length != tmxFile.tileSets.Length) { tileMap.tileSetMaterials = TileMapEditor.GetMaterials(tmxFile, path); tileMap.tileSetSprites = TileMapEditor.GetSprites(tmxFile, path); } EditorGUILayout.LabelField("Tile Sets", EditorStyles.boldLabel); string[] tilesSetNames = Array.ConvertAll(tmxFile.tileSets, (t) => t.name); selectedTileSetIndex = GUILayout.Toolbar(selectedTileSetIndex, tilesSetNames); switch (paintType) { case 0: TileSetField(tmxFile.tileSets[selectedTileSetIndex]); break; case 1: string[] terrainNames = Array.ConvertAll(terrains, (terrain) => terrain.name); selectedTerrainIndex = GUILayout.SelectionGrid(selectedTerrainIndex, terrainNames, 1); break; default: break; } paintType = GUILayout.Toolbar(paintType, new string[] { "Tiles", "Terrains" }); EditorGUILayout.Separator(); }
void DrawFilePanel() { EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Reload")) { tmxFile = TMXFile.Load(path); tileMap.tileSetMaterials = TileMapEditor.GetMaterials(tmxFile, path); tileMap.tileSetSprites = TileMapEditor.GetSprites(tmxFile, path); tileMap.Setup(); treeView.Reload(); } if (GUILayout.Button("Save")) { tmxFile.Save(path); AssetDatabase.ImportAsset(path); } if (GUILayout.Button("Save As")) { tmxFile.Save( EditorUtility.SaveFilePanel( "Save as TMX", Path.GetDirectoryName(path), Path.GetFileNameWithoutExtension(path), Path.GetExtension(path).TrimStart(new char[] { '.' }) ) ); AssetDatabase.Refresh(); AssetDatabase.ImportAsset(path); } EditorGUILayout.EndHorizontal(); }