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

Создание настраиваемой кисти, которая запускает скрипт

Скриптовыполняемые кисти — это кисти, которые могут рисовать более чем на панели инструментов по умолчанию, например, рисовать линию плиток или случайные плитки. Скриптовыполняемые кисти являются частью пакета Пакет 2D Tilemap Extras.

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

  • Используйте предварительно созданный скриптовый кисть.
  • Создайте пользовательскую кисть с использованием GridBrushBase API.

Использовать предварительно созданную кисть для скриптов

Чтобы использовать предварительно созданную кисть, выполните следующие действия:

  1. Убедитесь, что в вашем проекте установлен пакет 2D Tilemap Extras. Для получения дополнительной информации см. настройка проекта для 2D игр.
  2. Выберите плитку из палитры плиток, как обычно.
  3. В разделе Кисть выберите тип кисти, отличный от Default Brush.

Дополнительные сведения о каждой скриптовой кисти см. в Скриптуемые кисти в документации пакета 2D Tilemap Extras.

Создание пользовательской кисти

  1. Чтобы создать новый скрипт C#, в главном меню выберите Ассеты > Создать > Скрипт MonoBehaviour.

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

    using UnityEngine;
    using UnityEngine.Tilemaps;
    
    public class MyCustomBrush : GridBrushBase
    {
    }
    
  3. Реализуйте методы GridBrushBase для определения поведения кисти. Например, реализуйте следующее:

    • Paint для добавления элементов в сетку.
    • Erase для удаления элементов из сетки.
    • FloodFill для заполнения областей на сетке.
    • Rotate для поворота элементов.
    • Flip для переворачивания элементов.
    • ChangeZPosition и ResetZPosition для контроля 3D высоты элементов в изометрическом отображении Z как Y.
  4. Чтобы создать экземпляры кисти в качестве ассетов в вашем проекте, добавьте CreateAssetMenu атрибут перед объявлением класса.

    using UnityEngine;
    using UnityEngine.Tilemaps;
    
    [CreateAssetMenu]
    public class MyCustomBrush : GridBrushBase
    {
        // ...
    }
    
  5. Создайте экземпляр кисти. Например, в предыдущем примере, в главном меню выберите Ассеты > My Custom Brush.

Настраиваемая кисть автоматически появляется в раскрывающемся списке Brush Inspector в окне Палитра плитки. Дополнительные сведения см. в разделе Ссылка на окно Палитра плиток.

Создание пользовательского редактора для скриптов кисти

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

  • Переопределите OnPaintInspectorGUI, чтобы окно Inspector появлялось на Палитете при выборе Кисти, чтобы обеспечить дополнительное поведение при рисовании.
  • Переопределите OnPaintSceneGUI, чтобы добавить дополнительное поведение при рисовании на SceneView.
  • Переопределите validTargets, чтобы иметь пользовательский список целей, с которыми может взаимодействовать кисть. Этот список целей отображается в виде выпадающего списка в окне Палитра.
  • Добавить CustomGridBrush атрибут к классу своей скриптуемой кисти, чтобы изменить её имя, сделать кистью проекта по умолчанию и задать другие параметры.
  • Добавить BrushTools атрибут к своему классу со списком совместимых TilemapEditorTools Это обеспечивает, что ваш Scriptable Brush активируется только с этими конкретными инструментами с панели инструментов Tile Palette.

Примеры

Примеры настраиваемых кистей, поддающихся использованию в сценариях, см. в следующих разделах:

  • GridBrushBase в документации API для простого примера, который рисует GameObjects вместо плиток.
  • Выберите предварительно созданную кисть для скриптов в окне Палитра плитки, затем дважды щелкните поле Скрипт, чтобы открыть скрипт и проверить, как реализована кисть.

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