Trigger
trigger - это узел нулевого размера, который не имеет визуального представления и запускает функции обратного вызова, когда:
- Он включен / отключен (вызывается функция обратного вызова enabled).
- Его преобразование изменено (вызывается функция обратного вызова position).
Node Trigger обычно добавляется как дочерний узел к другому узлу, так что функции обратного вызова будут запускаться на родительском узле, включающем / отключающем или преобразующем.
The Node Trigger can work with procedurally created World Clutter objects.Node Trigger может работать с процедурно созданными объектами World Clutter.
Node Trigger может использоваться, например, для воспроизведения звука грома при вспышке молнии: когда включен узел молнии, вызывается функция обратного вызова enabled, которая воспроизводит звук.
See alsoСмотрите также#
- The NodeTrigger class to edit triggers via APIКласс NodeTrigger для редактирования триггеров через API
- Видеоурок Как использовать Node Trigger для обнаружения изменений в состоянии объекта
Adding a Node TriggerДобавление Node Trigger#
To add a new Node Trigger via UnigineEditor do the following:Чтобы добавить новый Node Trigger через UnigineEditor, сделайте следующее:
- Run UnigineEditor.Запустить UnigineEditor.
- On the Menu bar, click Create -> Logic -> Node Trigger.
- Place the Node Trigger in the world.
Поместите Node Trigger в мир.
- Добавьте Node Trigger в качестве дочернего к узлу, для которого должны запускаться функции обратного вызова: выберите Node Trigger в окне World Nodes Hierarchy и перетащите его внутрь требуемого узла.
Editing a Node TriggerРедактирование Node Trigger#
To edit the Node Trigger, select it and go to the Node tab of the Parameters window.Чтобы отредактировать Node Trigger, выберите его и перейдите на вкладку Node окна Parameters.
Handling EventsОбработка событий#
Редактирование ноды триггера включает в себя реализацию и указание обработчиков событий Enabled и Position, которые выполняются при включении или позиционировании ноды Trigger соответственно.
Обработчик события должен принимать как минимум 1 аргумент типа NodeTrigger. Кроме того, он может принимать еще 2 аргумента любого типа.
Обработчики событий задаются через указатели, указанные при подписке на следующие события: Enabled и Position.
// subscribe to the Enabled event when the trigger is enabled
nodeTrigger->getEventEnabled().connect(enabled_event_handler);
// subscribe to the Position event when the trigger's transformation is changed
nodeTrigger->getEventPosition().connect(position_event_handler);
// subscribe to the Enabled event when the trigger is enabled
nodeTrigger.EventEnabled.Connect(enabled_event_handler);
// subscribe to the Position event when the trigger's transformation is changed
nodeTrigger.EventPosition.Connect(position_event_handler);