Интерактивное устройство

объект Интерактивное устройство; InteractiveDeviceBaseReactor

Базовый объект для:

Объект предоставляет интерфейсы управления физическим устройством и обработки событий, приходящих от него. В качестве такого устройства может выступать мышь, трекпад, тачпад, клавиатура, VR контроллер и т.п.

Обзор возможностей

Свойство Описание
Включен (enabled) Позволяет приостановить/возобновить обработку событий, приходящих от устройства.
Событие Описание
Устройство включено (onEnable) Запускается при включении объекта.
Устройство выключено (onDisable) Запускается при выключении объекта.
Устройство подключено (onConnected) Запускается при установке соединения с объектом.
Устройство отключено (onDisconnected) Запускается при потере соединения с объектом.
Кнопка нажата (onButtonPush) Запускается при нажатии определенной кнопки физического устройства.
Кнопка отпущена (onButtonRelease) Запускается, когда отпущена определенная кнопка физического устройства.
Прикосновение началось (onTouchBegan) Запускается при начале прикосновения к тачпаду.
Прикосновение переместилось (onTouchMove) Запускается при перемещении по тачпаду.
Прикосновение завершено (onTouchEnded) Запускается при конце взаимодействия с тачпадом.
параметр Включен; enabled

Параметр, позволяющий приостановить обработку событий. Если объект отключен, события, генерируемые физическим устройством не обрабатываются. По умолчанию параметр имеет значение false.

Примечание

Важно понимать, что если объект выключен, то это не значит, что выключено физическое устройство, например, мышь. Операционная система по-прежнему будет обрабатывать сигналы, приходящие от устройства.

событие Устройство включено; onEnable

Запускается при включении объекта.

событие Устройство выключено; onDisable

Запускается при выключении объекта.

событие Устройство подключено; onConnected

Запускается при установке соединения с объектом.

событие Устройство отключено; onDisconnected

Запускается при потере соединения с объектом.

событие Кнопка нажата; onButtonPush

Запускается при нажатии определенной кнопки физического устройства.

Param buttonId:идентификатор кнопки, запустившей событие.
событие Кнопка отпущена; onButtonRelease

Запускается, когда отпущена определенная кнопка физического устройства.

Param buttonId:идентификатор кнопки, запустившей событие.
событие Прикосновение началось; onTouchBegan

Запускается при начале прикосновения к тачпаду.

Param Кнопка / buttonId – string:
 кнопка.
событие Прикосновение переместилось; onTouchMove

Запускается при перемещении по тачпаду.

Param Кнопка / buttonId – string:
 кнопка.
событие Прикосновение завершено; onTouchEnded

Запускается при конце взаимодействия с тачпадом.

Param Кнопка / buttonId – string:
 кнопка.
Действие Описание
Включить (enable) Включает объект.
Выключить (disable) Выключает объект.
действие Включить; enable(aFlag)

В соответствии с аргументом включает/выключает объект. Если объект до этого был выключен, то будет запущено событие Устройство включено (onEnable). Если до этого объект был включен, то будет запущено событие Устройство выключено (onDisable).

Параметры:aFlag – принимает значение true или false. По умолчанию true. При создании сценариев данный параметр опущен и принимает значение по умолчанию.
действие Выключить; disable()

Выключает объект. Если до этого объект был включен, то будет запущено событие Устройство выключено (onDisable). При написании Lua-скриптов вызов метода disable равносилен вызову метода enable с аргументом false.

Работа с интерактивным устройством

Особенности использования в сценарии

При создании сценариев с использованием объектов типа Интерактивное устройство (InteractiveDeviceBaseReactor), важно помнить, что если объект выключен, то никакие события приходить не будут. Типичной ошибкой в таком случае будет сценарий, изображенный ниже.

interactive_device_base_usage_mistake_img

Здесь ожидается включение объекта Мышь (MouseReactor) при нажатии на левую кнопку, но если объект выключен, то событие нажатия не придет. Таким образом, данный сценарий работать не будет! Если вам необходимо выключить некоторое интерактивное устройство, то для его повторного включения используйте события, приходящие от других объектов в вашем проекте.

Advanced

Пример кода:

local mouse = reactorController:getReactorByName("Mouse")
local image = reactorController:getReactorByName("Image")

mouse:subscribeEvent("onEnable", function()
    image:show()
end) -- подписываемся на событие onEnable

mouse:enable() -- включаем объект Мышь