Как называется класс для работы с устройствами ввода control device gameobject input

Обновлено: 15.06.2024

Благодарим вас за то, что вы помогаете нам улучшить качество документации по Unity. Однако, мы не можем принять любой перевод. Мы проверяем каждый предложенный вами вариант перевода и принимаем его только если он соответствует оригиналу.

Интерфейсы

Определяет объект, который знает, как вызвать команду.

Определяет необходимые возможности для объекта, который должен вести себя как источник языка ввода.

Предоставляет позицию ввода, необходимую для создания манипуляции.

Определение положений кнопки

Иногда бывает необходимо узнать, когда пользователь сначала нажимает или отпускает кнопку, а именно, в какой момент состояние кнопки переходит из отпущенного состояния в нажатое или наоборот. Чтобы определить это, необходимо знать данные ввода, считанные с устройства ранее, и сравнить с ними текущие показания, чтобы понять, какие изменения произошли.

В следующем примере кода представлен базовый подход к запоминанию предыдущих считанных показаний. Пример основан на геймпадах, однако для аркадного джойстика, гоночного руля и других устройств ввода действуют такие же принципы.

Сначала Game::Loop перемещает существующее значение newReading (данные ввода, считанные с геймпада во время предыдущей итерации цикла) в oldReading , а затем заполняет newReading новым считанным с геймпада значением для текущей итерации. На основании полученной информации вы можете определять положения кнопок.

В следующем примере кода представлен базовый подход к обнаружению изменений состояния кнопки:

Эти две функции сначала наследуют логическое состояние выбранной кнопки из newReading и oldReading , а затем выполняют бинарную логику, чтобы определить, произошло ли целевое изменение состояния кнопки. Эти функции возвращают значение true, только если новые считанные данные содержат целевое состояние (кнопка нажата или отпущена соответственно) и ранее считанные данные не содержат целевое состояние; в противном случае они возвращают значение false.

Получение состояния аккумулятора

Для любого игрового устройства управления, реализующего интерфейс IGameControllerBatteryInfo, можно вызвать метод TryGetBatteryReport в экземпляре устройства управления, чтобы получить объект BatteryReport, который предоставляет информацию об аккумуляторе в устройстве. Можно получить такие свойства, как скорость зарядки (ChargeRateInMilliwatts), предполагаемую энергоемкость нового аккумулятора (DesignCapacityInMilliwattHours) и энергоемкость текущего аккумулятора при полной зарядке (FullChargeCapacityInMilliwattHours).

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

ChargeRateInMilliwatts и DesignCapacityInMilliwattHours всегда будут иметь значение NULL.

Процент аккумулятора можно получить, выполнив вычисление ремаинингкапаЦитинмилливатсаурс / фуллчаржекапаЦитинмилливатсаурс. Значения этих свойств следует игнорировать и использовать только вычисленный процент.

Процент в предыдущем пункте всегда будет иметь одно из следующих значений:

  • 100% (полностью заряжено)
  • 70% (средний уровень)
  • 40% (низкий уровень)
  • 10% (критический уровень)

Если ваш код выполняет какое-либо действие (например, рисует пользовательский интерфейс) на основании оставшегося уровня заряда аккумулятора, следите за тем, чтобы он соответствовал значениям выше. Например, если вы хотите предупреждать игрока о низком заряде аккумулятора в контроллере, делайте это тогда, когда заряд опустится до 10%.

Способы ввода данных в играх

в этом разделе описываются шаблоны и методы эффективного использования устройств ввода в играх универсальная платформа Windows (UWP).

Прочитав этот раздел, вы узнаете следующее:

  • как отслеживать игроков, а также используемые ими устройства ввода и навигации;
  • как определять положения кнопок (из нажатого в отпущенное, из отпущенного в нажатое);
  • как определять сложные схемы положений кнопок с помощью одной проверки.

Добавление новых осей ввода

Если вы желаете добавить новые виртуальные оси, перейдите в меню Edit->Project Settings->Input . Здесь вы можете также изменить настройки каждой оси.


Вы привязываете каждую ось к двум кнопкам на джойстике, мыши или клавиатуре.

Свойство: Функция:
Name Имя, используемое для проверки этой оси из скрипта.
Descriptive Name Имя положительного значения, отображаемое на вкладке Input диалогового окна Configuration в автономных сборках.
Descriptive Negative Name Имя отрицательного значения, отображаемое на вкладке Input диалогового окна Configuration в автономных сборках.
Negative Button Кнопка, используемая для смещения значения оси в отрицательном направлении.
Positive Button Кнопка, используемая для смещения значения оси в положительном направлении.
Alt Negative Button Альтернативная кнопка, используемая для смещения значения оси в отрицательном направлении.
Alt Positive Button Альтернативная кнопка, используемая для смещения значения оси в положительном направлении.
Gravity Скорость в единицах в секунду, с которой ось возвращается в нейтральное положения, когда кнопки не нажаты.
Dead Размер аналоговой мертвой зоны. Все значения аналоговых устройств, попадающие в этот диапазон, считаются нейтральными.
Sensitivity Скорость в единицах в секунду, с которой ось движется к заданному значению. Только для цифровых устройств.
Snap Если включено, значение оси будет сбрасываться в ноль при нажатии кнопки в противоположном направлении.
Invert Если включено, Negative Buttons будут выдавать положительные значения, и наоборот.
Type Тип ввода, который будет управлять осью.
Axis Ось подключенного устройства, которая будет управлять этой осью.
Joy Num Подключенный джойстик, который будет управлять этой осью.

Используйте эти параметры для точной настройки внешнего вида ввода. Также, все они задокументированы во всплывающих подсказках в редакторе.

Перечисления

Задает политики захвата мыши.

Задает встроенные типы курсоров.

Задает направление в пользовательском интерфейсе, в котором пытается выполниться запрос на изменение фокуса. Это направление либо основано на последовательности табуляции, либо определяется относительно направления в макете.

Описывает режим преобразования ввода для выполнения методом ввода.

Задает режим преобразования предложений, выполняемого методом ввода.

Описывает состояние объекта InputMethod.

Задает возможные значения режима ввода.

Определяет имя области ввода, которая изменяет интерпретацию ввода с помощью альтернативных методов.

Задает возможные значения клавиш на клавиатуре.

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

Задает константы, определяющие состояние клавиши.

Определяет, как интерпретируются события манипуляции.

Задает набор клавиш CTRL, SHIFT и ALT.

Задает константы, определяющие выполняемые мышью действия.

Определяет значения, задающие кнопки на устройстве мыши.

Задает возможные состояния кнопки мыши.

Указывает, каким образом Windows Presentation Foundation (WPF) восстанавливает фокус на окне.

Задает режим интерпретации речевого ввода.

Представляет состояние объекта StylusButton.

Задает единицу измерения для свойства StylusPoint.

Определяет доступные системные жесты.

Определяет значения для типа устройств, используемых планшетным устройством.

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

Определяет набор состоящий для обработки автоматического завершения текстовой композиции.

Описывает действие, соответствующее заданной сенсорной точке.

System. Windows. Input Пространство имен

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Предоставляет типы для поддержки системы ввода Windows Presentation Foundation (WPF). Сюда входят классы абстрагирования устройств для устройств мыши, клавиатуры и пера, часто используемые классы диспетчера ввода, поддержка для команд и пользовательских команд, а также различные служебные классы.

Отслеживание пользователей и их устройств

Удостоверение пользователя — это также способ, с помощью которого устройство ввода связано с соответствующим контроллером навигации пользовательского интерфейса.

В связи с этим необходимо отслеживать вводимые пользователем данные и сопоставлять их с помощью свойства User в классе устройств (это свойство наследуется у интерфейса IGameController).

В примере усергамепадпаирингувп показано, как можно отследить пользователей и устройства, которые они используют.

Описание

Интерфейс системы ввода (Input system).

Этот класс используется для чтения информации с осей координат, установленных в Менеджере Ввода, а также для доступа к данным акселерометра/мультитач на мобильных устройствах.

Для чтения информации с оси используйте Input.GetAxis с одним из следующих стандартных обозначений осей: "Horizontal" and "Vertical" are mapped to joystick, A , W , S , D and the arrow keys. "Mouse X" and "Mouse Y" are mapped to the mouse delta. "Fire1", "Fire2" "Fire3" are mapped to Ctrl , Alt , Cmd keys and three mouse or joystick buttons. Новые оси ввода могут быть добавлены в Менеджере Ввода.

Используйте Input.GetAxis, если для реализации движения вы используете ввод . It gives you smoothed and configurable input that can be mapped to keyboard, joystick or mouse. Use Input.GetButton for action like events only. Don't use it for movement, Input.GetAxis will make the script code smaller and simpler.

Note also that the Input flags are not reset until "Update()", so its suggested you make all the Input Calls in the Update Loop.

Mobile Devices:

iOS and Android devices are capable of tracking multiple fingers touching the screen simultaneously. You can access data on the status of each finger touching screen during the last frame by accessing the Input.touches property array.

As a device moves, its accelerometer hardware reports linear acceleration changes along the three primary axes in three-dimensional space. You can use this data to detect both the current orientation of the device (relative to the ground) and any immediate changes to that orientation.

Acceleration along each axis is reported directly by the hardware as G-force values. A value of 1.0 represents a load of about +1g along a given axis while a value of -1.0 represents -1g. If you hold the device upright (with the home button at the bottom) in front of you, the X axis is positive along the right, the Y axis is positive directly up, and the Z axis is positive pointing toward you.

Использование осей ввода из скриптов

Вы можете запросить текущее состояние из скрипта так:

Это в случае ввода с джойстика и клавиатуры.

Однако изменения осей Mouse и Window Shake показывают, насколько мышь или окно сдвинулись по сравнению с последним кадром. Это значит, что они могут быть больше, чем 1 или меньше, чем –1, когда пользователь быстро двигает мышь.

Можно создавать несколько осей с одним именем. При получении ввода, будет возвращаться ось с наибольшим абсолютным значением. Это позволяет назначить больше одного устройства ввода на одно имя оси. Например, создайте одну ось для ввода с клавиатура и одну ось для ввода с джойстика с одинаковым именем. Если пользователь использует джойстик, ввод будет идти с джойстика, иначе ввод будет идти с клавиатуры. Таким образом, вам не нужно учитывать откуда приходит ввод при написании скриптов.

Отслеживание подключенных контроллеров

Хотя каждый тип контроллера включает список подключенных контроллеров (например, Gamepad.Gamepads), желательно вести свой собственный список контроллеров. Подробнее см. в разделе Список геймпадов (в статье о каждом типе контроллеров есть раздел с аналогичным названием).

Однако что произойдет, если пользователь отключит свой контроллер или подключит новый? Эти события необходимо обрабатывать и соответствующим образом обновлять список. Подробнее см. в разделе Добавление и удаление геймпадов (снова-таки, в статье о каждом типе контроллеров есть раздел с аналогичным названием).

Поскольку события добавления и удаления вызываются асинхронно, при работе со списком контроллеров есть возможность получить неверные результаты. Поэтому всякий раз, когда вы обращаетесь к своему списку контроллеров, вы должны установить для него блокировку, чтобы к нему одновременно мог обращаться только один поток. Это можно сделать с помощью параллельной среды выполнения, а именно класса critical_section, который находится в <ppl.h>.

Еще один момент, который нужно учитывать, — это то, что список подключенных контроллеров изначально будет пустым, и его заполнение займет одну-две секунды. Поэтому, если вы только назначаете текущий геймпад в методе запуска, он будет иметь значение null!

Следующий метод просто возвращает первый геймпад в списке (или nullptr, если список пустой). Затем просто нужно не забывать делать проверку на предмет nullptr всякий раз, когда вы делаете что-либо с этим контроллером. Блокировать ли игровой процесс при отсутствии подключенного контроллера (например, приостанавливать игру) или оставлять его продолжаться без ввода — решать вам.

Чтобы продемонстрировать все это вместе, вот пример обработки ввода с помощью геймпада:

Традиционный игровой ввод

Unity поддерживает ввод с клавиатуры, джойстика и гейпада.

Виртуальные оси и кнопки могут быть созданны в Input Manager , и конечные пользователи смогут настраивать ввод с клавиатуры на экране конфигурационного диалогового окна.


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

Классы

Предоставляет данные для событий клавиш доступа.

Поддерживает регистрацию всех клавиш доступа и обработку команд клавиатуры для взаимодействия между Windows Forms, Win32 и Windows Presentation Foundation (WPF).

Предоставляет данные для перенаправленного события AccessKeyManager.

Предоставляет стандартный набор команд, связанных с приложением.

Предоставляет реализацию WeakEventManager таким образом, что пользователь может использовать шаблон "слабого прослушивателя событий" для присоединения прослушивателей для события CanExecuteChanged.

Предоставляет данные для маршрутизируемых событий CanExecute и PreviewCanExecute.

Привязывает RoutedCommand к обработчикам событий, которые реализуют команду.

Представляет коллекцию объектов CommandBinding.

Преобразует объект ICommand в другие типы данных и из других типов данных.

Предоставляет связанные с командами служебные методы, регистрирующие объекты CommandBinding и InputBinding для владельцев классов и команд, добавляющие и удаляющие обработчики событий команд, а также предоставляет службы для запроса состояния команды.

Предоставляет стандартный набор связанных с компонентом команд, которые имеют предопределенные жесты ввода ключа и свойства Text.

Представляет изображение, используемое для указателя мыши.

Преобразует объект Cursor в другие типы данных и обратно.

Определяет набор курсоров по умолчанию.

Предоставляет данные для маршрутизируемых событий Executed и PreviewExecuted.

Предоставляет набор статических методов, вложенных свойств зависимостей и событий для определения и установки областей фокуса и для установки имеющих фокус элементов в данной области.

Контролирует замедление операции изменения размера во время инерции.

Контролирует замедление манипуляции поворота во время инерции.

Контролирует замедление манипуляции перемещения во время инерции.

Представляет привязку между InputGesture и командой. Этой командой потенциально является RoutedCommand.

Представляет упорядоченную коллекцию объектов InputBinding.

Абстрактный класс, описывающий устройство ввода.

Предоставляет данные для событий, связанных с вводом.

Абстрактный класс, описывающий жесты устройства ввода.

Представляет упорядоченную коллекцию объектов InputGesture.

Содержит аргументы, связанные с событием InputLanguageChanged.

Содержит аргументы, связанные с событием InputLanguageChanging.

Предоставляет базовый класс для аргументов событий, имеющих дело с изменениями входного языка.

Предоставляет средства для управления языками ввода в Windows Presentation Foundation (WPF).

Управляет всеми системами ввода в Windows Presentation Foundation (WPF).

Предоставляет возможности для управления взаимодействием с инфраструктурой текстовой службы, предоставляющей поддержку альтернативны методов ввода текста, таких как речевой и рукописный ввод.

Содержит аргументы, связанные с событием StateChanged.

Представляет сведения относительно области данных, предоставляемых методом ввода.

Преобразует объект InputScope в другие типы данных и обратно.

Определяет имя для шаблонов ввода текста.

Преобразует экземпляры InputScopeName в другие типы данных и обратно.

Представляет предложенный шаблон входного текста.

Связывает KeyGesture с RoutedCommand (или другой реализацией ICommand).

Абстрактный класс, представляющий устройство клавиатуры.

Предоставляет данные для событий, связанных с клавиатурой.

Предоставляет данные для маршрутизируемых событий LostKeyboardFocus и GotKeyboardFocus, а также связанных присоединенных событий и событий предварительного просмотра.

Предоставляет логическую и направленную навигацию между объектами, которые могут получать фокус ввода.

Преобразует объект Key в другие типы данных и обратно.

Предоставляет данные для перенаправленных событий KeyUp и KeyDown, а также связанных присоединенных событий и событий предварительного просмотра.

Определяет сочетание клавиш, которое может использоваться для вызова команды.

Преобразует объект KeyGesture в другие типы данных и обратно.

Преобразует экземпляры String в экземпляры KeyGesture и наоборот.

Предоставляет статические методы преобразования между виртуальными клавишами Win32 и перечислением Key WPF.

Преобразует экземпляры String в экземпляры Key и наоборот.

Содержит методы получения и обновления информации о манипуляции.

Предоставляет данные для события ManipulationCompleted.

Содержит данные о преобразовании, накапливаемые во время событий манипуляции.

Предоставляет данные для события ManipulationDelta.

Предоставляет данные для события ManipulationInertiaStarting.

Определяет, каким образом производится поворот с одной точкой ввода.

Предоставляет данные для события ManipulationStarted.

Предоставляет данные для события ManipulationStarting.

Описывает скорость манипуляции.

Предоставляет стандартный набор команд, связанных с мультимедиа.

Преобразует объект ModifierKeys в другие типы данных и обратно.

Преобразует экземпляры String в экземпляры ModifierKeys и наоборот.

Представляет устройство мыши для определенного потока.

Преобразует объект MouseAction в другие типы данных и обратно.

Преобразует экземпляры String в экземпляры MouseAction и наоборот.

Предоставляет данные для событий, связанных с кнопкой мыши.

Представляет устройство мыши.

Предоставляет данные для связанных с мышью маршрутизируемых событий, не включающих события, связанные с кнопками мыши или колесиком мыши, например MouseMove.

Определяет жест ввода мыши, который может использоваться для вызова команды.

Преобразует объект MouseGesture в другие типы данных и обратно.

Преобразует экземпляры String в экземпляры ModifierKeys и наоборот.

Предоставляет данные для различных событий, сообщающих о перемещении колесика мыши.

Предоставляет стандартный команд, связанных с навигацией.

Предоставляет данные для необработанного ввода, обрабатываемого объектом InputManager.

Предоставляет данные для предобработки событий ввода.

Предоставляет данные для постобработки событий, связанных с вводом.

Предоставляет данные для события QueryCursor.

Определяет команду, которая реализует интерфейс ICommand и направляется через дерево элементов.

Определяет объект ICommand, маршрутизируемый по дереву элементов и содержащий текстовое свойство.

Инкапсулирует событие ввода, обрабатываемое диспетчером ввода.

Предоставляет доступ к общей информации о планшетном пере.

Представляет кнопку пера.

Содержит коллекцию объектов StylusButton.

Предоставляет данные для событий StylusButtonDown и StylusButtonUp .

Представляет планшетное перо, используемое с планшетным ПК.

Содержит объекты StylusDevice, представляющие устройства пера планшетного ПК.

Предоставляет данные для события StylusDown.

Предоставляет данные для нескольких событий, связанных с классом Stylus.

Содержит коллекцию объектов StylusPoint.

Задает свойства, входящие в состав StylusPoint.

Содержит StylusPointProperty для каждого свойства, которое поддерживает WPF.

Представляет свойство, которое хранится в StylusPoint.

Задает ограничения свойства в StylusPoint.

Предоставляет данные для события StylusSystemGesture.

Предоставляет доступ к статическим методам, возвращающим планшетные устройства, подключенные к данной системе.

Представляет устройство диджитайзера планшетного ПК.

Содержит объекты TabletDevice, представляющие диджитайзеры планшетного устройства.

Представляет композицию, связанную с текстовым вводом, включающую сам текс композиции. связанные элементы управления или системный текст и состояние завершения этой композиции.

Содержит аргументы, связанные с изменениями TextComposition.

Предоставляет возможности для управления событиями, связанными с композициями ввода и текста.

Предоставляет службу уровня приложения, обрабатывающую мультисенсорный ввод из операционной системы и порождающую событие FrameReported.

Представляет один сенсорный ввод, выполненный с помощью пальца на сенсорном экране.

Предоставляет данные для событий сенсорного ввода.

Предоставляет данные для события FrameReported.

Содержит коллекцию объектов TouchPoint.

Представляет запрос на перемещение фокуса на другой элемент управления.

Virtual Axes

Из скриптов все виртуальные оси доступны по их именам.

Каждый проект при создании содержит следующие оси ввода по умолчанию:

  • Horizontal и Vertical привязаны к w, a, s, d и клавишам направления.
  • Fire1 , Fire2 , Fire3 привязаны к клавишам Control, Option (Alt) и Command соответственно.
  • Mouse X и Mouse Y привязаны к перемещениям мыши.
  • Window Shake X и Window Shake Y привязаны к перемещению окна.

Ошибка внесения изменений

По определённым причинам предложенный вами перевод не может быть принят. Пожалуйста <a>попробуйте снова</a> через пару минут. И выражаем вам свою благодарность за то, что вы уделяете время, чтобы улучшить документацию по Unity.

Ваше имя Адрес вашей электронной почты Предложение * Разместить предложенное

Выбор класса устройств ввода

Существует множество различных API-интерфейсов ввода, таких как ArcadeStick, FlightStick и Gamepad. Как выбрать оптимальный API-интерфейс для своей игры?

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

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

С помощью методов класса ввода FromGameController, таких как Gamepad.FromGameController, можно проверить, насколько тщательно контролируется каждое устройство. Например, если устройство также относится к классу Gamepad, возможно, потребуется изменить пользовательский интерфейс сопоставления кнопок и предоставить игроку выбор из нескольких практичных стандартных сопоставлений. (Обратите внимание на различие: если используется только RawGameController, игроку придется вручную настраивать элементы управления геймпада.)

Кроме того, можно посмотреть код поставщика (VID) и код продукта (PID) в классе RawGameController (с помощью методов HardwareVendorId и HardwareProductId соответственно) и создать рекомендуемые сопоставления кнопок для популярных устройств. При этом игра будет по-прежнему совместима с еще неизвестными будущими устройствами, так как игрок сможет настроить сопоставления вручную.

Названия кнопок

Чтобы назначить кнопку оси, вам необходимо ввести имя кнопки в свойстве Positive Button или Negative Button в окне Inspector .

Определение сложных схем положений кнопок

Каждая кнопка на устройстве ввода предоставляет цифровые данные, указывающие на ее состояние: нажата (down) или отпущена (up). В целях обеспечения эффективности эти показания кнопок не указываются в виде отдельных логических значений. Вместо этого все они упаковываются в битовые поля, представляемые соответствующими перечислениями, например GamepadButtons (в зависимости от устройства). Для считывания данных с конкретных кнопок используется побитовая маскировка, позволяющая изолировать нужные значения. Кнопка нажата, когда установлен соответствующий бит (состояние down); в противном случае кнопка отпущена (состояние up).

Вспомним, как определяется положение отдельных кнопок (нажата или отпущена). Пример основан на геймпадах, однако для аркадного джойстика, гоночного руля и других устройств ввода действуют такие же принципы.

Как видно, определить состояние одной кнопки просто, но иногда нужно определить состояние нескольких кнопок или положение кнопок в наборе—некоторые кнопки могут быть нажаты, а другие отпущены. Проверку состояния нескольких кнопок выполнить сложнее, чем проверку состояния одной кнопки—особенно когда существует вероятность, что состояние кнопок разное—однако для этих проверок существует простое правило, которое одинаково успешно применяется и к одной кнопке, и к нескольким.

В следующем примере показано, как определить, нажаты ли обе кнопки геймпада "A" и "B":

В следующем примере показано, как определить, отпущены ли обе кнопки геймпада "A" и "B":

В следующем примере показано, как определить, нажата ли кнопка геймпада "A" одновременно с отпущенной кнопкой "B":

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

В следующем примере были внесены изменения по сравнению с предыдущим, поэтому правило показано более наглядно:

Это правило можно применять для проверки любого количества кнопок с любой схемой состояний.

Keys (Клавиши)

Названия кнопок следуют этому соглашению:

  • Обычные клавиши“: ”a“, ”b“, ”c" …
  • Цифровые клавиши: “1”, “2”, “3”, …
  • Клавиши стрелок: “up”, “down”, “left”, “right”
  • Клавиши цифровой клавиатуры: “[1]”, “[2]”, “[3]”, “[+]”, “[equals]”
  • Клавиши модификаторов: “right shift”, “left shift”, “right ctrl”, “left ctrl”, “right alt”, “left alt”, “right cmd”, “left cmd”
  • Клавиши мыши: “mouse 0”, “mouse 1”, “mouse 2”, …
  • Кнопки джойстика (от любого джойстика): “joystick button 0”, “joystick button 1”, “joystick button 2”, …
  • Кнопки джойстика (от заданного джойстика): “joystick 1 button 0”, “joystick 1 button 1”, “joystick 2 button 0”, …
  • Специальные клавиши: “backspace”, “tab”, “return”, “escape”, “space”, “delete”, “enter”, “insert”, “home”, “end”, “page up”, “page down”
  • Функциональные клавиши: “f1”, “f2”, “f3”, …

Названия, используемые для определения кнопок одни и те же при написании скриптов и в окне Inspector.

Ось может иметь значение от –1 до 1. На нейтральное положение указывает 0. Note also that the keys are accessible using the KeyCode enum parameter.

Структуры

Представляет одну точку данных, полученную от диджитайзера или пера.

Делегаты

Представляет метод, обрабатывающий присоединенное событие AccessKeyPressed.

Представляет метод обработки события CanExecute.

Представляет метод, обрабатывающий перенаправленные события Executed и PreviewExecuted, а также связанные присоединенные события.

Представляет метод, обрабатывающий перенаправленные события, связанные с вводом.

Представляет метод обработки события StateChanged.

Представляет метод, обрабатывающий маршрутизируемые события, связанные с клавиатурой.

Представляет метод, обрабатывающий перенаправленные события LostKeyboardFocus и GotKeyboardFocus, а также связанные присоединенные события и события предварительного просмотра.

Представляет метод, обрабатывающий перенаправленные события KeyUp и KeyDown, а также связанные присоединенные события и события предварительного просмотра.

Представляет метод, который будет обрабатывать маршрутизируемые события, связанные с кнопкой мыши, например MouseLeftButtonDown.

Представляет метод, обрабатывающий связанные с мышью перенаправленные события, которые не относятся непосредственно к кнопкам или колесику мыши, например MouseMove.

Представляет метод, обрабатывающий перенаправленные события MouseWheel и MouseWheel, а также связанные присоединенные события и события предварительного просмотра.

Представляет метод, который будет обрабатывать события PreNotifyInput и PostNotifyInput.

Представляет метод обработки события PreProcessInput.

Представляет метод обработки события PostProcessInput.

Представляет метод, обрабатывающий события QueryCursor и QueryCursor, а также присоединенное событие QueryCursor.

Представляет метод, обрабатывающий событие StylusButtonDown или StylusButtonUp объекта UIElement.

Представляет метод, который обрабатывает событие StylusDown наряду с некоторыми вариантами, включая соответствующее событие предварительного просмотра. Также заново предоставляет доступ к событию в классах базовых элементов.

Представляет метод, обрабатывающий событие пера для класса, реализующего интерфейс IInputElement.

Представляет метод, обрабатывающий событие StylusSystemGestureUIElement.

Представляет метод, который обработает направленные события, связанные с классами TextComposition и TextCompositionManager, например TextInput.

Читайте также: