PointerDownEvent
класс в UnityEngine.UIElements
Наследуется от:UIElements.PointerEventBase_1
Выполнено в:UnityEngine.UIElementsModule
Описание
Отправляется при нажатии указателя внутри визуального элемента.
Во время выполнения UI, a PointerDownEvent отправляется каждый раз, когда пользователь касается экрана или нажимает кнопку мыши.
В редакторе UI, a PointerDownEvent отправляется, когда пользователь впервые касается экрана или нажимает кнопку мыши. Однако, если пользователь нажимает дополнительные кнопки мыши (правую или среднюю), не отпуская первоначальную, PointerMoveEvents отправляется не PointerDownEvent. Освобождение всех кнопок мыши и повторное нажатие кнопки мыши отправляет новый PointerDownEvent.
A PointerDownEvent следует за указателем по умолчанию путь распространения события. Она просачивается вниз, пузырится вверх, и может быть отменена.
Отключенные элементы не получают это событие.
Информацию о том, как PointerDownEvent относится к другим событиям указателя, ссылается на PointerEventBase<T0> и События указателя.
Дополнительные ресурсы: PointerMoveEvent, PointerUpEvent, PointerCancelEvent
// This example creates a ClickDetector class to detect a click sequence.
namespace UnityEngine.UIElements { public class ClickDetector : VisualElement { public ClickDetector() { RegisterCallback<PointerDownEvent>(ProcessEvent); RegisterCallback<PointerMoveEvent>(ProcessEvent); RegisterCallback<PointerUpEvent>(ProcessEvent); } private void ProcessEvent<TEvent>(PointerEventBase<TEvent> evt) where TEvent : PointerEventBase<TEvent>, new() { if (evt.eventTypeId == PointerDownEvent.TypeId() && evt.button == 0) { StartClickTracking(evt); } else if (evt.eventTypeId == PointerMoveEvent.TypeId()) { // Button 1 was pressed while another button was already pressed. if (evt.button == 0 && (evt.pressedButtons & 1) == 1) { StartClickTracking(evt); } // Button 1 is released while another button is still pressed. else if (evt.button == 0 && (evt.pressedButtons & 1) == 0) { SendClickEvent(evt); } // Pointer movement detected or button state changed. else { UpdateClickStatus(evt); } } else if (evt.eventTypeId == PointerUpEvent.TypeId() && evt.button == 0) { SendClickEvent(evt); } }
private void StartClickTracking(IPointerEvent evt) { Debug.Log("Starting click sequence"); } private void UpdateClickStatus(IPointerEvent evt) { Debug.Log("Tracking"); } private void SendClickEvent(IPointerEvent evt) { Debug.Log("Completed click"); } } }
Конструкторы
| Конструктор | Описание |
|---|---|
| PointerDownEvent | Конструктор. Избегайте создания новых экземпляров событий. Вместо этого используйте GetPooled() для получения экземпляра из пула многоразовых экземпляров событий. |
Защищенные методы
| Метод | Описание |
|---|---|
| Init | Сброс членов события до их исходных значений. |
Унаследованные члены 4
Свойства
| Свойство | Описание |
|---|---|
| bubbles | Возвращает информацию о том, появляется ли этот тип события в пути распространения событий во время фазы BubbleUp. |
| dispatch | Показывает, отправляется ли событие в визуальный элемент. Событие не может быть переадресовано в процессе отправки. Если необходимо рекурсивно отправить событие, рекомендуется использовать копию события. |
| ignoreDisabledElements | Если это свойство установлено на true, обратные вызова для этого события не вызываются при отключении текущей цели, если только эти обратные вызова не зарегистрированы с помощью параметра CallbackOptions.IncludeDisabled. |
| imguiEvent | IMGUIEvent в источнике этого события. Источник может быть нулевым, поскольку не все события генерируются IMGUI. |
| isImmediatePropagationStopped | Указывает, был ли вызван StopImmediatePropagation для этого события. |
| isPropagationStopped | Возвращает true, если StopPropagation или StopImmediatePropagation были вызваны для этого события. |
| originalMousePosition | Первоначальное положение мыши в событии IMGUI до его преобразования в текущие целевые локальные координаты. |
| pooled | Выделяется ли событие из пула событий. |
| propagationPhase | Текущая фаза распространения этого события. |
| target | Конечный визуальный элемент, получивший это событие. В отличие от currentTarget, этот конечный элемент не изменяется, когда событие отправляется другим элементам по пути распространения. |
| timestamp | Время отправки события в миллисекундах. |
| tricklesDown | Возвращает информацию о том, отправляется ли это событие по пути распространения событий в фазе TrickleDown. |
| eventTypeId | См. EventBase.eventTypeId. |
| actionKey | Получает логическое значение, указывающее, нажата ли клавиша действия для конкретной платформы. |
| altitudeAngle | Получает угол наклона стилуса относительно поверхности в радианах |
| altKey | Получает логическое значение, указывающее, нажата ли клавиша Alt. |
| azimuthAngle | Получает угол наклона стилуса относительно оси x в радианах. |
| button | Возвращает значение, указывающее, какая кнопка мыши была нажата или отпущена (если таковая была нажата или отпущена), чтобы вызвать это событие: 0 — левая кнопка, 1 — правая кнопка, 2 — средняя кнопка. Отрицательное значение означает, что во время этого события ни одна кнопка мыши не меняла своего состояния. |
| clickCount | Получает число последовательных последовательностей вниз-вверх, выполненных за короткое время с одним и тем же указателем ID и кнопкой. |
| commandKey | Получает логическое значение, указывающее, нажата ли клавиша Windows/Cmd. |
| ctrlKey | Получает логическое значение, указывающее, нажата ли клавиша Ctrl. |
| currentTarget | Получает текущий конечный объект события. |
| deltaPosition | Получает разницу между положением указателя во время предыдущего события указателя и его положением во время текущего события указателя. |
| deltaTime | Получает время, прошедшее с момента последнего записанного изменения значений указателя, в секундах. |
| isPrimary | Получает логическое значение, указывающее, является ли указатель основным указателем. True означает, что указатель является основным указателем. False означает, что это не так. |
| localPosition | Получает позицию указателя в системе координат текущего объекта. |
| modifiers | Получает флаги, указывающие, нажаты ли клавиши модификаторов (Alt, Ctrl, Shift, Windows/Cmd). |
| penStatus | Указывает состояние пера. Например, касается ли перо экрана или планшета, перевёрнуто ли оно и нажаты ли кнопки. На macOS penStatus не отражает изменения в назначении кнопок. |
| pointerId | Получает идентификатор указателя, который отправил событие. |
| pointerType | Получает тип указателя, создавшего событие. |
| position | Получает позицию указателя в системе координат панели. |
| pressedButtons | Получает битмаску, описывающую кнопки, которые в данный момент нажаты. |
| pressure | Получает величину давления, которое в настоящее время применяется при прикосновении. |
| radius | Получает оценку радиуса касания. |
| radiusVariance | Получает точность радиуса касания. |
| shiftKey | Получает логическое значение, указывающее, нажата ли клавиша Shift. |
| tangentialPressure | Получает давление, приложенное к дополнительному чувствительному к давлению элементу управления на стилусе. |
| tilt | Указывает угол ручки относительно осей X и Y соответственно, в радианах. |
| twist | Получает поворот стилуса вокруг своей оси в радианах. |
Открытые методы
| Метод | Описание |
|---|---|
| StopImmediatePropagation | Остановка распространения события на другие конечные объекты и предотвращение получения события другими подписчиками события на этом конечном объекте. |
| StopPropagation | Прекращает распространение события на другие конечные объекты. Все подписчики на событие на этом конечном объекте по-прежнему получают событие. |
| Dispose | Осуществление IDispose. |
Защищенные методы
| Метод | Описание |
|---|---|
| PostDispatch | Позволяет подклассам выполнять настраиваемую логику после отправки события. |
| PreDispatch | Позволяет подклассам выполнять настраиваемую логику до отправки события. |
Статические методы
| Метод | Описание |
|---|---|
| RegisterEventType | Регистрирует класс события в системе типов событий. |
| GetPooled | Получает событие из пула событий. Используйте эту функцию вместо создания новых событий. События, полученные с помощью этого метода, должны быть выпущены обратно в пул. Вы можете использовать Dispose() для их выпуска. |
| SetCreateFunction | Позволяет предоставить функцию для создания экземпляра события без зависимости от Activator.CreateInstance. |
| TypeId | Получает тип ID для этого экземпляра события. |
| GetPooled | Получает событие из пула событий и инициализирует его с указанными значениями. Используйте эту функцию вместо создания новых событий. События, полученные с помощью этого метода, должны быть выпущены обратно в пул. Вы можете использовать Dispose() для их выпуска. |