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 в юнитах. |
Настройка обратных вызовов#
Чтобы добавить обратный вызов входа или выхода, напишите функцию обратного вызова, которая получает Узел в качестве первого аргумента. Затем используйте метод 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);