有没有办法从瓷砖图片集合中批量创建瓷砖资产?

问题描述 投票:0回答:0

是否有办法批量创建这种类型的磁贴资产?https:/docs.unity3d.comManualTilemap-TileAsset.html。

在运行前从2D精灵的集合中提取?我猜测可能有一种方法可以使用像这样的编辑器脚本来实现。https:/docs.unity3d.comScriptReferenceAssetDatabase.CreateAsset.html。

这将是一个巨大的时间节省,而不是必须单独复制项目文件夹中的瓷砖,并为新瓷砖逐一选择默认图像。

在这种情况下,我宁愿避免通常的拖放到磁贴调色板中,因为该过程生成的磁贴不能真正通过代码单独访问,除非我实例化一个磁贴图预制件,我不想这样做。

c# unity3d
0
投票

这是我要找的答案。

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);
    }
}

© www.soinside.com 2019 - 2024. All rights reserved.