是否有办法批量创建这种类型的磁贴资产?https:/docs.unity3d.comManualTilemap-TileAsset.html。
在运行前从2D精灵的集合中提取?我猜测可能有一种方法可以使用像这样的编辑器脚本来实现。https:/docs.unity3d.comScriptReferenceAssetDatabase.CreateAsset.html。
这将是一个巨大的时间节省,而不是必须单独复制项目文件夹中的瓷砖,并为新瓷砖逐一选择默认图像。
在这种情况下,我宁愿避免通常的拖放到磁贴调色板中,因为该过程生成的磁贴不能真正通过代码单独访问,除非我实例化一个磁贴图预制件,我不想这样做。
这是我要找的答案。
using UnityEngine;
using UnityEditor;
using UnityEngine.Tilemaps;
public class TileParser : MonoBehaviour
{
private const string inputPath = "Tilesets";
private const string outputPath = "Assets/Tiles/";
[MenuItem("Pre Production/Parse Tiles")]
public static void ParseTiles()
{
var sprites = Resources.LoadAll<Sprite>(inputPath);
foreach(var sprite in sprites)
{
Tile t = ScriptableObject.CreateInstance<Tile>();
t.name = sprite.name;
t.sprite = sprite;
AssetDatabase.CreateAsset(t, string.Format("{0}{1}.asset", outputPath, t.name));
}
Debug.Log(sprites.Length + " tiles created at " + outputPath);
}
}