World Trigger
A world trigger is a cuboid shaped object, which triggers events when any node (physical or not) gets inside or outside of it. The trigger can detect a node of any type by its bound object and can be used to access node's components and parameters.World Trigger - это объект в форме куба, который выполняет функции обратного вызова при вхождении любых объектов в ограничиваемый им объем или покидания объектами этого объема. Триггер может обнаруживать ноды любого типа (как с физическими свойствами, так и без них) по их ограничивающему контуру и может использоваться для доступа к компонентам и параметрам узла.
- Dummy Node
- Node Reference
- Node Layer
- World Switcher
- World Transform Path
- World Transform Bone
- World Expression
- Dummy Object (if it has no body assigned)Dummy Object (if it has no body assigned)
- Dummy Node
- Node Reference
- Node Layer
- World Switcher
- World Transform Path
- World Transform Bone
- World Expression
- Dummy Object (if it has no body assigned)Dummy Object (если он не имеет назначенного физического тела)
See alsoСмотрите также#
- WorldTrigger class to manage World Trigger via APIWorldTrigger класс для управления World Trigger через API
-
A set of samples located in the data/samples/worlds folder:Набор сэмплов в папке data/samples/worlds:
- trigger_01
- trigger_02
- Videotutorial on How To Use World Triggers to Detect Nodes by Their BoundsВидеоурок Как обнаружить любой объект при помощи World Trigger
Creating a World TriggerСоздание World Trigger#
To create World Trigger via UnigineEditor:Чтобы создать World Trigger через UnigineEditor:
-
On the Menu bar, choose Create -> Logic -> World TriggerВ меню выберите Create -> Logic -> World Trigger
- Place the node in the scene.Поместите узел в сцену.
Editing a World TriggerРедактирование World Trigger#
In the Node tab of the Parameters window, you can adjust the following parameters of World Trigger:На вкладке Node окна Parameters вы можете настроить следующие параметры World Trigger:
Bounding Box ParametersПараметры ограничивающей рамки#
A set of bounding box parameters:Набор параметров ограничивающей рамки:
Edit Size |
Toggles the editing mode for the World Trigger node on and off. When enabled, the bounding box sides that can be resized are highlighted with the colored rectangles. To change the size of a side, drag the corresponding rectangle.Включает и выключает режим редактирования для узла World Trigger. Если этот параметр включен, стороны ограничивающего прямоугольника, размер которых можно изменить, выделяются цветными прямоугольниками. Чтобы изменить размер стороны, перетащите соответствующий прямоугольник. |
---|---|
Touch | Toggles the touch mode for World Trigger on and off. With this mode on, World Trigger reacts to the node at a partial contact. Otherwise, World Trigger reacts only if the whole bounding box gets inside it.Включает и выключает сенсорный режим для World Trigger. В этом режиме World Trigger реагирует на узел при частичном контакте. В противном случае World Trigger реагирует только в том случае, если весь ограничивающий прямоугольник попадает внутрь него. |
Size | The size of the World Trigger bounding box along the X, Y, and Z axes, in units.Размер ограничивающего прямоугольника World Trigger по осям X, Y и Z в юнитах. |
Handling EventsНастройка обратных вызовов#
Чтобы добавить обратный вызов входа или выхода, напишите функцию обратного вызова, которая получает Узел в качестве первого аргумента. Затем используйте метод addEnterCallback или addLeaveCallback, чтобы указать вызываемую функцию.
// add the enter callback to be fired when a node enters World Trigger
worldTrigger->addEnterCallback(MakeCallback(this, &AppWorldLogic::enter_callback));
// add the leave callback to be fired when a node leaves World Trigger
worldTrigger->addLeaveCallback(MakeCallback(this, &AppWorldLogic::leave_callback));
// add the enter callback to be fired when a node enters World Trigger
worldTrigger.AddEnterCallback(enter_callback);
// add the leave callback to be fired when a node leaves World Trigger
worldTrigger.AddLeaveCallback(leave_callback);