Создание настраиваемой кисти, которая запускает скрипт
Скриптовыполняемые кисти — это кисти, которые могут рисовать более чем на панели инструментов по умолчанию, например, рисовать линию плиток или случайные плитки. Скриптовыполняемые кисти являются частью пакета Пакет 2D Tilemap Extras.
Можно выполнить следующие действия:
- Используйте предварительно созданный скриптовый кисть.
- Создайте пользовательскую кисть с использованием
GridBrushBaseAPI.
Использовать предварительно созданную кисть для скриптов
Чтобы использовать предварительно созданную кисть, выполните следующие действия:
- Убедитесь, что в вашем проекте установлен пакет 2D Tilemap Extras. Для получения дополнительной информации см. настройка проекта для 2D игр.
- Выберите плитку из палитры плиток, как обычно.
- В разделе Кисть выберите тип кисти, отличный от Default Brush.
Дополнительные сведения о каждой скриптовой кисти см. в Скриптуемые кисти в документации пакета 2D Tilemap Extras.
Создание пользовательской кисти
Чтобы создать новый скрипт C#, в главном меню выберите Ассеты > Создать > Скрипт MonoBehaviour.
-
Откройте скрипт и замените код классом, который наследуется от
UnityEngine.Tilemaps.GridBrushBase. Например:using UnityEngine; using UnityEngine.Tilemaps; public class MyCustomBrush : GridBrushBase { } -
Реализуйте методы
GridBrushBaseдля определения поведения кисти. Например, реализуйте следующее:Paintдля добавления элементов в сетку.Eraseдля удаления элементов из сетки.FloodFillдля заполнения областей на сетке.Rotateдля поворота элементов.Flipдля переворачивания элементов.ChangeZPositionиResetZPositionдля контроля 3D высоты элементов в изометрическом отображении Z как Y.
-
Чтобы создать экземпляры кисти в качестве ассетов в вашем проекте, добавьте
CreateAssetMenuатрибут перед объявлением класса.using UnityEngine; using UnityEngine.Tilemaps; [CreateAssetMenu] public class MyCustomBrush : GridBrushBase { // ... } Создайте экземпляр кисти. Например, в предыдущем примере, в главном меню выберите Ассеты > My Custom Brush.
Настраиваемая кисть автоматически появляется в раскрывающемся списке Brush Inspector в окне Палитра плитки. Дополнительные сведения см. в разделе Ссылка на окно Палитра плиток.
Создание пользовательского редактора для скриптов кисти
Для пользовательской скриптуемой кисти тоже можно сделать собственный редактор — так же, как для ScriptableObject. При создании такого редактора обычно переопределяют следующие основные методы:
- Переопределите
OnPaintInspectorGUI, чтобы окно Inspector появлялось на Палитете при выборе Кисти, чтобы обеспечить дополнительное поведение при рисовании. - Переопределите
OnPaintSceneGUI, чтобы добавить дополнительное поведение при рисовании наSceneView. - Переопределите
validTargets, чтобы иметь пользовательский список целей, с которыми может взаимодействовать кисть. Этот список целей отображается в виде выпадающего списка в окне Палитра. - Добавить
CustomGridBrushатрибут к классу своей скриптуемой кисти, чтобы изменить её имя, сделать кистью проекта по умолчанию и задать другие параметры. - Добавить
BrushToolsатрибут к своему классу со списком совместимыхTilemapEditorToolsЭто обеспечивает, что ваш Scriptable Brush активируется только с этими конкретными инструментами с панели инструментов Tile Palette.
Примеры
Примеры настраиваемых кистей, поддающихся использованию в сценариях, см. в следующих разделах:
GridBrushBaseв документации API для простого примера, который рисует GameObjects вместо плиток.- Выберите предварительно созданную кисть для скриптов в окне Палитра плитки, затем дважды щелкните поле Скрипт, чтобы открыть скрипт и проверить, как реализована кисть.