using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Tilemaps; [CreateAssetMenu(fileName = "NewTerrainTile", menuName = "2D/Tiles/Terrain Tile")] public class TerrainTile : Tile { public enum TerrainType { Passable, Impassable } public TerrainType Type; #if UNITY_EDITOR [UnityEditor.MenuItem("Tools/Create Terrain Tile(s) (from Tiles)")] public static void CopyTilesToTerrain() { TerrainTile terrain; if(!UnityEditor.AssetDatabase.IsValidFolder("Assets/Tiles")) UnityEditor.AssetDatabase.CreateFolder("Assets", "Tiles"); foreach (var selected in UnityEditor.Selection.objects) { var tile = selected as Tile; if (!tile) continue; terrain = CreateInstance<TerrainTile>(); terrain.sprite = tile.sprite; terrain.name = tile.name; terrain.colliderType = tile.colliderType; terrain.color = tile.color; terrain.flags = tile.flags; string name = UnityEditor.AssetDatabase.GenerateUniqueAssetPath(string.Format("Assets/Tiles/{0}.asset", tile.name)); UnityEditor.AssetDatabase.CreateAsset(terrain, name); UnityEditor.AssetDatabase.SaveAssets(); } } #endif }