private void DrawMapDataField() { TilemapContainer tilemap = this.Target; TmxAsset tmxAsset = (TmxAsset)EditorGUILayout.ObjectField("Map Data", tilemap.TmxAsset, typeof(TmxAsset), false); if (tilemap.TmxAsset != null && tmxAsset == null) { FlaiDebug.LogWithTypeTag <TilemapContainerInspector>("Map Data set null!"); } if (tilemap.TmxAsset != tmxAsset || (tilemap.TmxAsset != null && tilemap.TmxAsset.NeedsRefresh)) { tilemap.TmxAsset = tmxAsset; tilemap.OnMapUpdated(); EditorUtility.SetDirty(tilemap); } }
protected static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromPath) { if (importedAssets == null) { return; } foreach (string tilemapAsset in importedAssets.Where(asset => asset != null && asset.EndsWith(".tmx"))) { if (tilemapAsset == null) { continue; } const string TilemapPath = "Assets/Tile Maps/Maps/"; string fileName = Path.GetFileNameWithoutExtension(tilemapAsset); string finalPath = Path.Combine(TilemapPath, fileName) + ".asset"; // ensure that the directory exists Directory.CreateDirectory(TilemapPath); TmxAsset tmxAsset = TilemapLoader.LoadTilemap(tilemapAsset); TmxAsset previous = (TmxAsset)AssetDatabase.LoadAssetAtPath(finalPath, typeof(TmxAsset)); if (previous != null) { previous.CopyFrom(tmxAsset); FlaiDebug.LogWithTypeTag <TilemapImporter>("Tilemap {0} updated!", fileName); EditorUtility.SetDirty(previous); } else { AssetDatabase.CreateAsset(tmxAsset, finalPath); EditorUtility.SetDirty(tmxAsset); FlaiDebug.LogWithTypeTag <TilemapImporter>("Tilemap {0} imported succesfully!", fileName); } TilemapImporter.SaveTilemapFile(tilemapAsset); AssetDatabase.DeleteAsset(tilemapAsset); } AssetDatabase.Refresh(); AssetDatabase.SaveAssets(); }
private static void InitializeTilemapData(TmxAsset data, TmxData tmxData) { TilesetManager tilesetManager = TilemapLoader.CreateTilesetManager(tmxData); data.Initialize(tmxData.TmxTileLayers.Select(tl => new TilemapData(tl.TileData, tmxData.MapSize, tl.Properties, tl.Name)), tilesetManager); }