Unity 6.3
0 онлайн 54 гостей 3 в системе
Вход

Настройка того, как Unity создает плитки из текстуры

Чтобы настроить, как Unity создает плитки из текстуры, создайте скрипт, наследующий от TileTemplate.

Примечание: TileTemplate работают только при автоматическом создании палитры плиток с помощью набора плиток, а не при создании собственной палитры плиток. Дополнительные сведения см. в Создание набора плиток.

Выполните следующие действия:

  1. В окне Project создайте папку с названием Редактор.

  2. Чтобы создать новый скрипт C#, щелкните правой кнопкой мыши папку Редактор и выберите Создать > MonoBehaviour скрипт.

  3. Откройте скрипт и замените код классом, который наследуется от UnityEngine.Tilemaps.TileTemplate. Например:

    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.Tilemaps;
    
    public class MyTileTemplate : TileTemplate
    {
    }
    
  4. Реализуйте метод CreateTileAssets. Этот метод предоставляет вам исходную текстуру и ее спрайты, так что вы можете написать код, который создает и размещает плитки в палитре плиток.

    Например, следующий код создает один ряд плиток в палитре плиток из спрайтов в исходной текстуре:

    public override void CreateTileAssets(Texture2D texture2D, IEnumerable<Sprite> sprites, ref List<TileChangeData> tilesToAdd)
    {
        int xTilePosition = 0;
    
        // For each sprite in the source texture
        foreach (Sprite sprite in sprites)
        {
            // Create a new tile instance and assign the sprite
            Tile newTile = ScriptableObject.CreateInstance<Tile>();
            newTile.name = sprite.name;
            newTile.sprite = sprite;
    
            // Position the tile at the current X position in the tile palette
            tilesToAdd.Add(new TileChangeData()
            {
                position = new Vector3Int(xTilePosition, 0, 0),
                tile = newTile,
                transform = Matrix4x4.identity,
                color = Color.white
            });
    
            // Increment the x position for the next tile
            xTilePosition++;
        }
    }
    
  5. Чтобы создать экземпляры шаблона плитки в вашем проекте, добавьте CreateAssetMenu атрибут перед объявлением класса.

    [CreateAssetMenu]
    public class MyTileTemplate : TileTemplate
    {
        // ...
    }
    
  6. Создание экземпляра шаблона плитки в Project окно. Например, в предыдущем примере, в главном меню, выберите Ассеты > Создать затем имя вашего TileTemplate class.

  7. Создать набор плиток.

  8. После добавления текстуры в набор плиток перетащите ассет шаблона плитки из окна Project в поле Tile Template в окне Tile Set Importer Inspector.

  9. Выбрать Применить, затем откройте Окно палитры плитки чтобы проверить плитки, созданные вашим шаблоном плитки.

Дополнительные ресурсы