Есть ли способ массового создания активов плитки из коллекции изображений плитки? - PullRequest
0 голосов
/ 19 июня 2020

Есть ли способ массового создания тайловых ресурсов этого типа https://docs.unity3d.com/Manual/Tilemap-TileAsset.html

Из коллекции 2D-спрайтов перед запуском? Я подозреваю, что есть способ сделать это с помощью сценария редактора, подобного этому: https://docs.unity3d.com/ScriptReference/AssetDatabase.CreateAsset.html

Это значительно сэкономит время, вместо того, чтобы по отдельности дублировать плитки в папке проекта. и выбор изображений по умолчанию для новых плиток один за другим.

В этом случае я бы предпочел избегать обычного перетаскивания + падение в палитры тайлов, потому что тайлы, сгенерированные этим процессом, не могут быть доступны индивидуально через код, если я не создаю экземпляр префаба тайловой карты, чего я не делаю. хочу сделать.

1 Ответ

0 голосов
/ 19 июня 2020

Вот ответ, который я искал.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...