Trigger
trigger - это узел нулевого размера, который не имеет визуального представления и запускает функции обратного вызова, когда:
- Он включен / отключен (вызывается функция обратного вызова enabled).
- Его преобразование изменено (вызывается функция обратного вызова position).
Node Trigger обычно добавляется как дочерний узел к другому узлу, так что функции обратного вызова будут запускаться на родительском узле, включающем / отключающем или преобразующем.
Node Trigger может работать с процедурно созданными объектами World Clutter.
Node Trigger может использоваться, например, для воспроизведения звука грома при вспышке молнии: когда включен узел молнии, вызывается функция обратного вызова enabled, которая воспроизводит звук.
Смотрите также#
- Класс NodeTrigger для редактирования триггеров через API
- Видеоурок Как использовать Node Trigger для обнаружения изменений в состоянии объекта
Добавление Node Trigger#
Чтобы добавить новый Node Trigger через UnigineEditor, сделайте следующее:
- Запустить UnigineEditor.
- В строке меню щелкните Create -> Logic -> Node Trigger.
- Поместите Node Trigger в мир.
- Добавьте Node Trigger в качестве дочернего к узлу, для которого должны запускаться функции обратного вызова: выберите Node Trigger в окне World Nodes Hierarchy и перетащите его внутрь требуемого узла.
Редактирование Node Trigger#
Чтобы отредактировать Node Trigger, выберите его и перейдите на вкладку Node окна Parameters.
Настройка обратных вызовов#
Чтобы добавить обратный вызов enabled/disabled или position, напишите функцию обратного вызова, которая получает как минимум 1 аргумента типа NodeTrigger. Затем используйте addEnabledCallback() / addPositionCallback(), чтобы указать вызываемую функцию. См. Другие методы редактирования обратных вызовов Node Trigger здесь .
// add the enabled and position callbacks
nodeTrigger->addEnabledCallback(MakeCallback(this, &enabled_callback));
nodeTrigger->addPositionCallback(MakeCallback(this, &position_callback));
// add the enabled and position callbacks
nodeTrigger.AddEnabledCallback(enabled_callback);
nodeTrigger.AddPositionCallback(position_callback);