UnityGameProjectsCode / DiceAndMenGame / TerrainTile.cs
TerrainTile.cs
Raw
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
}