World Trigger
World Trigger - это объект в форме куба, который выполняет функции обратного вызова при вхождении любых объектов в ограничиваемый им объем или покидания объектами этого объема. Триггер может обнаруживать ноды любого типа (как с физическими свойствами, так и без них) по их ограничивающему контуру и может использоваться для доступа к компонентам и параметрам узла.
- Dummy Node
- Node Reference
- Node Layer
- World Switcher
- World Transform Path
- World Transform Bone
- World Expression
- Dummy Object (если он не имеет назначенного физического тела)
Смотрите также#
- WorldTrigger класс для управления World Trigger через API
-
Набор сэмплов в папке data/samples/worlds:
- trigger_01
- trigger_02
- Видеоурок Как обнаружить любой объект при помощи World Trigger
Создание World Trigger#
Чтобы создать World Trigger через UnigineEditor:
-
В меню выберите Create -> Logic -> World Trigger
- Поместите узел в сцену.
Редактирование World Trigger#
На вкладке Node окна Parameters вы можете настроить следующие параметры World Trigger:
Параметры ограничивающей рамки#
Набор параметров ограничивающей рамки:
Edit Size |
Включает и выключает режим редактирования для узла World Trigger. Если этот параметр включен, стороны ограничивающего прямоугольника, размер которых можно изменить, выделяются цветными прямоугольниками. Чтобы изменить размер стороны, перетащите соответствующий прямоугольник. |
---|---|
Touch | Включает и выключает сенсорный режим для World Trigger. В этом режиме World Trigger реагирует на узел при частичном контакте. В противном случае World Trigger реагирует только в том случае, если весь ограничивающий прямоугольник попадает внутрь него. |
Size | Размер ограничивающего прямоугольника World Trigger по осям X, Y и Z в юнитах. |
Обработка событий#
Чтобы выполнять определенные действия, когда нода входит или выходит из World Trigger, следует реализовать обработчики событий, которые получают Node в качестве первого аргумента. Затем следует подписаться на события Enter и/или Leave и вызвать connect().
// subscribe to the Enter event when a node enters the world trigger with your handler
worldTrigger->getEventEnter().connect(enter_event_handler);
// subscribe to the Leave event when a node leaves the world trigger with your handler
worldTrigger->getEventLeave().connect(leave_event_handler);
// subscribe to the Enter event when a node enters the world trigger with your handler
worldTrigger.EventEnter.Connect(enter_event_handler);
// subscribe to the Leave event when a node leaves the world trigger with your handler
worldTrigger.EventLeave.Connect(leave_event_handler);