Unity 6.3
0 онлайн 101 гостей 3 в системе
Вход
UI системы Шаг 171 из 317

Захват указателя с помощью манипулятора

Когда визуальный элемент захватывает указатель, Unity отправляет все события, связанные с указателем, визуальному элементу независимо от того, находится ли указатель над визуальным элементом. Например, если вы создаете контроллер, который получает события перетаскивания и захватывает указатель, контроллер все равно получает события перетаскивания независимо от местоположения указателя.

Manipulator класс даёт удобный способ захватить указатель. Manipulator класс — базовый для всех манипуляторов. Манипулятор — это класс, который обрабатывает ввод указателя и отправляет события визуальному элементу. Например, Clickable класс — это манипулятор, который отправляет PointerDownEvent когда пользователь нажимает на визуальный элемент. После PointerDownEvent, некоторые элементы должны захватывать позицию указателя, чтобы обеспечить получение всех последующих событий указателя, даже если курсор больше не находится над элементом. Например, когда вы нажимаете на кнопку, ползунок или полосу прокрутки.

Чтобы захватить указатель, вызовите PointerCaptureHelper.CapturePointer.

Чтобы освободить указатель, вызовите PointerCaptureHelper.ReleasePointer. Если другой элемент уже захватывает указатель, когда вы вызываете CapturePointer(), элемент получает событие PointerCaptureOutEvent и теряет захват.

Только один элемент в приложении может иметь захват в любой момент. Пока элемент имеет захват, он является целью всех последующих событий указателя, за исключением событий колеса мыши. Это относится только к событиям указателя, которые еще не имеют установленной цели и полагаются на процесс отправки для определения цели.

Дополнительные сведения см. в Захват событий.

Дополнительные ресурсы