> press any key to skip

CRAFTCODE

Справка

Компонент

UMouseInterceptorComponentUActorComponent, добавляется к любому актору через панель Components.


Делегаты

OnMousePressed

Срабатывает при нажатии кнопки мыши.

ПараметрТипОписание
ButtonFKeyНажатая кнопка (EKeys::LeftMouseButton, RightMouseButton, MiddleMouseButton, ThumbMouseButton, ThumbMouseButton2)
bIsDoubleClickbooltrue, если клик попал в окно DoubleClickThreshold с предыдущего клика той же кнопкой

OnMouseReleased

Срабатывает при отпускании кнопки мыши.

ПараметрТипОписание
ButtonFKeyОтпущенная кнопка
bIsDoubleClickboolФлаг двойного клика для последовательности press+release

Функции

SetDoubleClickThreshold(float Threshold)

Устанавливает интервал (в секундах) для определения двойного клика.

MouseInterceptorComponent->SetDoubleClickThreshold(0.5f);

По умолчанию — 0.25s. Рекомендации:

  • 0.2–0.3s — стандартный «windows-подобный» двойной клик
  • 0.15s — для быстрого геймплея
  • 10.0f — фактическое отключение определения (флаг всегда false)

GetDoubleClickThreshold()

Возвращает текущий порог в секундах.


Code Modules

  • MouseInterceptor [Runtime]

Зависимости (.Build.cs)

PublicDependencyModuleNames.AddRange(new string[] {
    "Core", "CoreUObject", "Engine",
    "InputCore", "Slate", "SlateCore",
    "UMG",
});

Поддерживаемые версии

UEСтатус
4.27✅ CrossEngine
5.0 – 5.7✅ CrossEngine

FAQ

Как отключить двойной клик?

Установи DoubleClickThreshold в очень большое значение — например 10.0f. Флаг bIsDoubleClick будет false практически всегда.

Поддерживается ли сетевая репликация?

Нет — плагин обрабатывает ввод только на клиентской стороне. Для сетевой передачи кликов оберни делегаты в RPC руками.

Работает ли перехват когда активен UI-виджет?

Да — перехват глобальный, независим от состояния фокуса ввода. Работает когда курсор вне окна? Нет — Slate получает события только пока окно активно.

Что с right-click UE-меню контекста?

Плагин получает события до стандартной обработки Slate. Если нужно сохранить дефолтное поведение (например, ПКМ в UMG-виджете), обрабатывай в своём делегате флаг bIsHandled — можно вернуть false и пустить событие дальше.

Совместим с Enhanced Input?

Да — плагин работает параллельно Enhanced Input (оба слушают Slate). Два разных слоя ввода, не конкурируют.