44 lines
1.5 KiB
C#
44 lines
1.5 KiB
C#
|
using UnityEngine;
|
||
|
using UnityEngine.Tilemaps;
|
||
|
|
||
|
namespace UnityEditor.Tilemaps
|
||
|
{
|
||
|
/// <summary>
|
||
|
/// Utility class for creating Tiles
|
||
|
/// </summary>
|
||
|
public class TileUtility
|
||
|
{
|
||
|
internal static void CreateNewTile()
|
||
|
{
|
||
|
string message = string.Format("Save tile'{0}':", "tile");
|
||
|
string newAssetPath = EditorUtility.SaveFilePanelInProject("Save tile", "New Tile", "asset", message, ProjectWindowUtil.GetActiveFolderPath());
|
||
|
|
||
|
// If user canceled or save path is invalid, we can't create the tile
|
||
|
if (string.IsNullOrEmpty(newAssetPath))
|
||
|
return;
|
||
|
|
||
|
AssetDatabase.CreateAsset(CreateDefaultTile(), newAssetPath);
|
||
|
}
|
||
|
|
||
|
/// <summary>Creates a Tile with defaults based on the Tile preset</summary>
|
||
|
/// <returns>A Tile with defaults based on the Tile preset</returns>
|
||
|
public static Tile CreateDefaultTile()
|
||
|
{
|
||
|
return ObjectFactory.CreateInstance<Tile>();
|
||
|
}
|
||
|
|
||
|
/// <summary>Creates a Tile with defaults based on the Tile preset and a Sprite set</summary>
|
||
|
/// <param name="sprite">A Sprite to set the Tile with</param>
|
||
|
/// <returns>A Tile with defaults based on the Tile preset and a Sprite set</returns>
|
||
|
[CreateTileFromPalette]
|
||
|
public static TileBase DefaultTile(Sprite sprite)
|
||
|
{
|
||
|
Tile tile = CreateDefaultTile();
|
||
|
tile.name = sprite.name;
|
||
|
tile.sprite = sprite;
|
||
|
tile.color = Color.white;
|
||
|
return tile;
|
||
|
}
|
||
|
}
|
||
|
}
|