reckfellENGINE

InputEventAction

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

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

InputEventAction представляет логическое действие, а не физическую клавишу. Создание или изменение объекта не вводит нажатие в игру. Для отправки используется Input.ParseInputEvent; при буферизации глобальное состояние может обновиться позднее, когда очередь будет обработана.

Полный пример ожидает уже зарегистрированное действие и создаёт новый объект события для каждого вызова. Отправляйте отпускание для соответствующего нажатия. Несколько виртуальных кнопок одного действия требуют согласования их общего состояния: EventIndex = -1 не создаёт независимое удержание для каждой кнопки.

C#
using System;
using Reckfell;

public static class VirtualActionExample
{
    // The action must already exist. Each call creates a fresh event object.
    public static void Send(StringName action, bool pressed, float strength = 1f)
    {
        if (!InputMap.HasAction(action))
            throw new ArgumentException("Register the action before sending input.", nameof(action));
        if (!float.IsFinite(strength))
            throw new ArgumentOutOfRangeException(nameof(strength));
        using var inputEvent = new InputEventAction
        {
            Action = action,
            Pressed = pressed,
            Strength = pressed ? strength : 0f
        };
        Input.ParseInputEvent(inputEvent);
    }
}

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

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

Конструкторы1

InputEventActionКонструктор
# InputEventAction
C#
public InputEventAction();

Создаёт событие без отправки во ввод: Action пустой, Pressed = false, Strength = 1, EventIndex = -1. Изменение свойств само не меняет глобальное состояние Input.

Свойства4

ActionСвойство
# Action
C#
public StringName Action { get; set; }

Имя логического действия. Для обработки через Input действие должно существовать в InputMap. Присваивание имени не создаёт действие, привязку клавиши или физическое нажатие.

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

Индекс источника внутри действия. При -1 используется дополнительный виртуальный слот после его привязок, а не уникальный ID экземпляра события. Несколько событий с одним действием и устройством используют этот общий слот; отпускание одного не учитывает независимое удержание другого. Не меняйте привязки InputMap между парой нажатие/отпускание и не используйте произвольные числа как ID кнопок.

PressedСвойство
# Pressed
C#
public bool Pressed { get; set; }

Состояние виртуального действия в этом событии: true — нажатие, false — отпускание. Само присваивание не отправляет событие. Отпускание не обнуляет хранящееся Strength; сила при сопоставлении отпущенного действия всё равно равна 0.

StrengthСвойство
# Strength
C#
public float Strength { get; set; }

Хранящаяся сила события. Конечные значения ограничиваются диапазоном 0..1; начальное значение — 1. Свойство не обнуляется автоматически при Pressed = false, но GetActionStrength для отпускания возвращает 0. Проверяйте конечность собственных входных значений.

Методы7

GetActionStringName
# GetAction
C#
public StringName GetAction();

Возвращает Action без отправки события или изменения Input.

Возвращает StringName

Имя логического действия.

GetEventIndexint
# GetEventIndex
C#
public int GetEventIndex();

Возвращает EventIndex без отправки события или изменения Input.

Возвращает int

Индекс источника; -1 выбирает общий виртуальный слот.

GetStrengthfloat
# GetStrength
C#
public float GetStrength();

Возвращает Strength без отправки события или изменения Input.

Возвращает float

Хранящаяся сила в 0..1 для конечных входных значений, независимо от Pressed.

SetActionvoid
# SetAction
C#
public void SetAction(StringName action);

Устанавливает Action с правилами свойства; событие не отправляется.

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

Имя логического действия.

SetEventIndexvoid
# SetEventIndex
C#
public void SetEventIndex(int index);

Устанавливает EventIndex с правилами свойства; событие не отправляется.

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

Индекс источника; -1 выбирает общий виртуальный слот.

SetPressedvoid
# SetPressed
C#
public void SetPressed(bool pressed);

Устанавливает Pressed; не отправляет событие и не изменяет хранящееся Strength.

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

true для нажатия, false для отпускания.

SetStrengthvoid
# SetStrength
C#
public void SetStrength(float strength);

Устанавливает Strength с правилами свойства; событие не отправляется.

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

Хранящаяся сила в 0..1 для конечных входных значений, независимо от Pressed.

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

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

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

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