Trigger
Trigger is a zero-sized node that has no visual representation and triggers events when:
Trigger - это нода нулевого размера, которая не имеет визуального представления и запускает события, когда:
- It is enabled/disabled (the Enabled event is triggered).Она включается/выключается (вызывается событие Enabled).
- Its transformation is changed (the Position event is triggered).Ее трансформации изменяются (вызывается событие Position).
The Node Trigger node is usually added as a child node to another node, so that the handler functions were executed on the parent node enabling/disabling or transforming.Node Trigger обычно добавляется как дочерняя нода к другой ноде, так что функции обработки событий будут запускаться при включении/выключении или трансформации родительской ноды.
The Node Trigger can work with procedurally created World Clutter objects.Node Trigger может работать с процедурно созданными объектами World Clutter.
The Node Trigger can be used, for example, to play a sound of thunder when a lightning flashes: when the lightning node is enabled, the Enabled event handler that plays a sound is executed.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, сделайте следующее:
-
In UnigineEditor, on the Menu bar, click Create -> Logic -> Node Trigger.В UnigineEditor в строке меню щелкните Create -> Logic -> Node Trigger.
-
Place the Node Trigger in the world.Поместите Node Trigger в мир.
-
Add the Node Trigger as a child to a node for which handlers should be executed: select the Node Trigger in the World Nodes Hierarchy window and drag it inside the required node.Добавьте 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Обработка событий#
Editing a trigger node includes implementing and specifying the Enabled and Position event handlers that are executed on enabling or positioning the Trigger node correspondingly.Редактирование ноды триггера включает в себя реализацию и указание обработчиков событий Enabled и Position, которые выполняются при включении или позиционировании ноды Trigger соответственно.
The event handler must receive at least 1 argument of the NodeTrigger type. In addition, it can also take another 2 arguments of any type. Обработчик события должен принимать как минимум 1 аргумент типа NodeTrigger. Кроме того, он может принимать еще 2 аргумента любого типа.
The event handlers are set via pointers specified when subscribing to the following events: Enabled and Position.Обработчики событий задаются через указатели, указанные при подписке на следующие события: 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);