Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Блокировка курсора и полноэкранный режим в WebGL

Блокировка курсора (с помощью Cursor.lockState) и полноэкранный режим (с помощью Screen.fullScreen) поддерживаются в WebGL Unity. API JavaScript, который отображает 2D- и 3D-графику в веб-браузере. Вариант сборки Unity WebGL позволяет Unity публиковать контент в виде программ JavaScript, использующих технологии HTML5 и API рендеринга WebGL для запуска контента Unity в веб-браузере. Подробнее
См. в Словарь
, реализованном с использованием соответствующих API HTML5 (Element.requestPointerLock и Element .requestFullscreen). Они поддерживаются в Firefox и Chrome. Safari в настоящее время не может использовать полноэкранный режим и блокировку курсора.

Включение блокировки курсора и полноэкранного режима в WebGL

Из соображений безопасности браузеры позволяют блокировать курсор или переходить в полноэкранный режим только в ответ на инициированное пользователем событие (например, щелчок мышью или нажатие клавиши). К сожалению, в Unity нет отдельных циклов обработки событий и рендеринга, поэтому он откладывает обработку событий до момента, когда браузер больше не признает запрос на полноэкранный режим или блокировку курсора, выдаваемый сценарием Unity, как прямой ответ на событие, вызвавшее его. В результате Unity инициирует запрос по следующему событию, инициированному пользователем, а не по событию, вызвавшему блокировку курсора или запрос на полный экран.

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

Используйте UI.Button Unity для достижения желаемого поведения путем создания подкласса Button, который переопределяет метод OnPointerDown.

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

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3