reckfellENGINE

InputEvent

Разбор отдельного события ввода, сопоставление actions и координат.

На этой странице
class InputEventReckfellSharpНаследует Resource

InputEvent — базовый Resource события; конкретный тип определяет поля и поведение. Проверка event.IsActionPressed() относится к этому событию, а Input.IsActionPressed() — к текущему агрегированному состоянию. Создание/опрос события не отправляет ввод в игру или OS.

IsAction проверяет совпадение, не факт удержания. IsActionReleased означает совпадающий неактивный pressed-state: canceled mouse и ось внутри deadzone тоже могут дать true. Для причины проверяйте IsCanceled и конкретный тип. Echo по умолчанию исключён из IsActionPressed.

У IsMatch default exactMatch=true, у action-запросов=false. Это не универсальное equality: сравнение разных подтипов бывает несимметричным. XformedBy тоже зависит от типа: MouseMotion даёт копию, Key может вернуть ту же ссылку.

Обработка ввода. Проверены синтетические объекты и временные InputMap actions на Windows; реальная клавиатура, контроллер, GUI-маршрутизация и потеря фокуса окна здесь не проверялись.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Свойства1

DeviceСвойство
# Device
C#
public int Device { get; set; }

Метаданные ID устройства события. Изменение не выбирает физическое устройство и не отправляет нажатие; setter вызывает Changed. Допустимы специальные отрицательные значения. InputMap может фильтровать binding по Device, но прямой IsMatch/Accumulate не обязан проверять его одинаково во всех подтипах.

Методы15

Accumulatebool
# Accumulate
C#
public bool Accumulate(InputEvent withEvent);

Пытается объединить withEvent с этим объектом и при успехе изменяет получатель. Не отправляет ввод и не управляет глобальным Input.UseAccumulatedInput. Базовый тип возвращает false; проверен InputEventMouseMotion: суммы Relative/ScreenRelative, последние Position/GlobalPosition/Velocity/ScreenVelocity. Требуются совместимые window/state/modifiers. Прямой вызов MouseMotion.Accumulate не проверяет Device; при разделении устройств отфильтруйте их сами. Это не универсальное сложение всех полей и не гарантия слияния любого типа.

Параметры
ИмяТипПо умолчанию
withEventInputEvent—
withEvent

Второе событие для слияния в получатель; проверьте тип/Device, если это нужно вашему протоколу.

Возвращает bool

True после успешного изменения получателя либо false без поддержанного слияния.

AsTextstring
# AsText
C#
public string AsText();

Человекочитаемая метка конкретного события; формат и локализация зависят от подтипа. Не используйте для сериализации, сравнения или стабильного action ID. InputEventAction может показать первую привязку из InputMap, а не своё имя Action; без привязок результат может быть пустым.

Возвращает string

Человекочитаемая, возможно пустая метка без стабильного формата.

GetActionStrengthfloat
# GetActionStrength
C#
public float GetActionStrength(StringName action, bool exactMatch = false);

Сила указанного action именно в этом событии, не текущее агрегированное Input-состояние. Цифровое нажатие обычно 1, отпускание 0; ось учитывает deadzone привязки, а InputEventAction использует сохранённую Strength только при Pressed. Несовпадающее событие возвращает 0. Action должен существовать в InputMap; неизвестное имя диагностируется, а не является безопасным TryGet.

Параметры
ИмяТипПо умолчанию
actionStringName—
exactMatchboolfalse
action

Имя существующего action в InputMap, не код клавиши; при динамическом имени сначала HasAction.

exactMatch

True требует точного сопоставления modifiers/направления по подтипу. Default у IsMatch=true, у action-запросов=false.

Возвращает float

Сила action в этом событии, обычно 0…1; 0 также при несовпадении.

GetDeviceint
# GetDevice
C#
public int GetDevice();

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

Возвращает int

Текущее целое Device metadata.

IsActionbool
# IsAction
C#
public bool IsAction(StringName action, bool exactMatch = false);

Проверяет совпадение данного события с существующим action в InputMap независимо от Pressed/released и силы. Поэтому true возможно для отпускания и оси внутри deadzone. exactMatch=false по умолчанию допускает дополнительные modifiers по правилам подтипа. Не изменяет Input и не означает, что action сейчас удерживается.

Параметры
ИмяТипПо умолчанию
actionStringName—
exactMatchboolfalse
action

Имя существующего action в InputMap, не код клавиши; при динамическом имени сначала HasAction.

exactMatch

True требует точного сопоставления modifiers/направления по подтипу. Default у IsMatch=true, у action-запросов=false.

Возвращает bool

Факт совпадения, независимо от pressed-state.

IsActionPressedbool
# IsActionPressed
C#
public bool IsActionPressed(StringName action, bool allowEcho = false, bool exactMatch = false);

True, если событие соответствует action и его action pressed-state активен. Echo клавиатуры исключён, пока allowEcho=false. Это проверка данного события, не IsActionJustPressed глобального Input и не автоматическое потребление события. exactMatch управляет совпадением modifiers/направления по типу события. Для оси результат зависит от deadzone, а не только факта движения.

Параметры
ИмяТипПо умолчанию
actionStringName—
allowEchoboolfalse
exactMatchboolfalse
action

Имя существующего action в InputMap, не код клавиши; при динамическом имени сначала HasAction.

allowEcho

True допускает keyboard echo; false отфильтровывает его в IsActionPressed.

exactMatch

True требует точного сопоставления modifiers/направления по подтипу. Default у IsMatch=true, у action-запросов=false.

Возвращает bool

Совпадающее активное нажатие с учётом echo/deadzone.

IsActionReleasedbool
# IsActionReleased
C#
public bool IsActionReleased(StringName action, bool exactMatch = false);

True для совпадающего action с неактивным pressed-state. Не является универсальным доказательством физического отпускания: проверены canceled mouse и ось внутри deadzone, для которых метод тоже true. Проверяйте IsCanceled и конкретный тип, если важна причина. Nonexact key release может совпасть с привязкой, modifiers которой уже отпущены. Не равно глобальному Input.IsActionJustReleased.

Параметры
ИмяТипПо умолчанию
actionStringName—
exactMatchboolfalse
action

Имя существующего action в InputMap, не код клавиши; при динамическом имени сначала HasAction.

exactMatch

True требует точного сопоставления modifiers/направления по подтипу. Default у IsMatch=true, у action-запросов=false.

Возвращает bool

Совпадение с неактивным pressed-state; не доказательство физического release.

IsActionTypebool
# IsActionType
C#
public bool IsActionType();

Классифицирует подтип как пригодный для action-событий, не проверяя конкретную настройку InputMap. Клавиша возвращает true, MouseMotion — false в проверке. Это не IsAction, не проверка Pressed и не разрешение изменять InputMap.

Возвращает bool

Признак подтипа, не совпадение с настроенным action.

IsCanceledbool
# IsCanceled
C#
public bool IsCanceled();

Возвращает флаг отмены события. При canceled базовые IsPressed и IsReleased оба false; однако IsActionReleased может вернуть true через action matching. Отмена не равна обычному отпусканию. Переходы canceled при потере реального фокуса окна здесь не проверялись.

Возвращает bool

Сохранённый флаг отмены события.

IsEchobool
# IsEcho
C#
public bool IsEcho();

Показывает repeat/echo конкретного события там, где подтип его поддерживает, например InputEventKey. База возвращает false. Не означает двойной клик или автоматически повторяемое игровое действие. IsActionPressed по умолчанию отбрасывает echo.

Возвращает bool

Repeat/echo по подтипу, false у базы.

IsMatchbool
# IsMatch
C#
public bool IsMatch(InputEvent @event, bool exactMatch = true);

Сравнивает события по правилам конкретного подтипа, а не все сериализуемые поля. По умолчанию exactMatch=true, в отличие от IsAction. Pressed/strength/Device не обязаны определять результат. Сравнение разных подтипов может быть несимметричным: InputEventAction способен проверить key через свой InputMap action, а key не обязан совпасть с Action обратно. Не используйте как универсальный equality/hash.

Параметры
ИмяТипПо умолчанию
eventInputEvent—
exactMatchbooltrue
event

Другое InputEvent; сравнение идёт по правилам получателя и может быть несимметричным.

exactMatch

True требует точного сопоставления modifiers/направления по подтипу. Default у IsMatch=true, у action-запросов=false.

Возвращает bool

Совпадение по правилам подтипа получателя.

IsPressedbool
# IsPressed
C#
public bool IsPressed();

Возвращает сохранённый pressed && !canceled для этого объекта. Само событие может быть создано вручную и не отражать OS-состояние. Для action с axis/deadzone используйте соответствующий action-запрос, а для текущего удержания — Input. Не проверяет тип события.

Возвращает bool

pressed && !canceled этого объекта.

IsReleasedbool
# IsReleased
C#
public bool IsReleased();

Возвращает !pressed && !canceled. Для событий нажатия это локальный признак отпущенного состояния; сам по себе не подтверждает реальный переход клавиши/кнопки, особенно у синтетических или других подтипов. Не равен IsActionReleased и не читает глобальное Input-состояние.

Возвращает bool

!pressed && !canceled этого объекта.

SetDevicevoid
# SetDevice
C#
public void SetDevice(int device);

Изменяет Device и испускает Resource.Changed. Не переназначает action binding, не подключает устройство и не подаёт OS-событие. Не изменяйте разделяемое входное событие во время рассылки, если другой код ещё использует исходные метаданные.

Параметры
ИмяТипПо умолчанию
deviceint—
device

Метаданные Device, включая специальные значения; не OS handle.

XformedByInputEvent
# XformedBy
C#
public InputEvent XformedBy(Transform2D xform, Vector2? localOfs = default);

Преобразует координатные события по правилам подтипа. Для MouseMotion проверены новая копия, position = xform*(position+localOfs), basis-only преобразование Relative/Velocity и сохранение ScreenRelative/ScreenVelocity/GlobalPosition. Для Key базовая реализация возвращает тот же объект и тот же C# wrapper: независимая копия не гарантирована. Не Dispose такой alias пока исходное событие используется. Это не перенос события между OS-окнами и не отправка ввода.

Параметры
ИмяТипПо умолчанию
xformTransform2D—
localOfsVector2?default
xform

2D-преобразование локальных координат; экранные поля могут оставаться неизменными.

localOfs

Смещение, прибавляемое до xform для позиционных событий; null/default означает Vector2.Zero.

Возвращает InputEvent

InputEvent: новая копия или тот же общий объект в зависимости от подтипа.

Поля и константы3

DeviceIdEmulationПоле
# DeviceIdEmulation
C#
public const long DeviceIdEmulation = -1;

Специальное значение −1 для эмулированных событий, например mouse из touch. Не означает, что любой созданный вручную InputEventAction автоматически получает этот ID. Не является OS handle или номером игрока.

DeviceIdKeyboardПоле
# DeviceIdKeyboard
C#
public const long DeviceIdKeyboard = 16;

Значение 16, используемое конструктором InputEventKey как категория клавиатуры. Не индекс клавиши, scan code или гарантированное различение нескольких физических клавиатур.

DeviceIdMouseПоле
# DeviceIdMouse
C#
public const long DeviceIdMouse = 32;

Значение 32, используемое конструктором событий мыши. Не индекс кнопки и не OS window ID. Физическая поддержка нескольких мышей этим значением не подтверждается.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.