> press any key to skip

CRAFTCODE

Как использовать

Установка

  1. Скопируй плагин

    Помести папку MouseInterceptor в директорию Plugins твоего проекта. Если папки Plugins нет — создай её.

  2. Включи плагин

    Открой проект в Unreal Editor → Edit → Plugins → Installed → Input → Mouse Interceptor → галочка.

  3. Перезапусти редактор

    После включения плагин нужно перекомпилировать — Editor перезапустится автоматически.


Шаг 1 — Добавить компонент

  1. Открой актор

    Выбери актора, в котором нужен перехват мыши (Character, PlayerController, ActorComponent-хост — любой).

  2. Add Component

    В панели Components нажми Add Component, начни вводить MouseInterceptor.

  3. Выбери MouseInterceptorComponent

    Добавь его — компонент появится в иерархии.

MouseInterceptorComponent в панели Components
// Компонент добавлен в актор

Шаг 2 — Подписаться на делегаты

В Blueprint Event Graph выбранного актора:

  1. Выбери компонент

    В Components pane слева щёлкни MouseInterceptorComponent.

  2. Найди события

    В Details panel → секция EventsOnMousePressed / OnMouseReleased. Нажми кнопку + справа от нужного — в Event Graph появится узел.

Привязка OnMousePressed в Event Graph
// Узел OnMousePressed создан

Параметры делегата:

  • ButtonEKeys::LeftMouseButton, RightMouseButton, MiddleMouseButton и т.д.
  • bIsDoubleClicktrue если клик попал в окно DoubleClickThreshold с предыдущего клика той же кнопкой.
Использование bIsDoubleClick в Blueprint
// Ветвление по bIsDoubleClick

Пример Blueprint-логики

Event OnMousePressed (Button, bIsDoubleClick)
  → Branch: bIsDoubleClick?
      True  → Print "Двойной клик: {Button}"
      False → Print "Одиночный клик: {Button}"
Полный граф Blueprint с Branch по bIsDoubleClick
// Готовая Blueprint-логика

Настройка порога двойного клика

По умолчанию порог — 0.25 секунды. Меняется в runtime через SetDoubleClickThreshold.

MouseInterceptorComponent->SetDoubleClickThreshold(0.5f); // полсекунды

Или через Blueprint (тот же метод):

SetDoubleClickThreshold в Blueprint
// Метод вызывается как обычная Blueprint-функция

Заметки