Я не думаю, что есть хорошее решение для этого - по крайней мере, пока мы не получим блокировку мыши.Независимо от того, насколько изящно ваше решение, если вы создаете изворотливую игру, управляемую мышью, в какой-то момент пользователь будет дергаться за пределами области холста.Даже если они случайно не нажмут на ссылку, их погружение будет прервано, когда представление перестанет реагировать на их мышь.
Для игр с более медленной скоростью вы можете:
- Использовать щелчоки перетащите, чтобы повернуть.Как только пользователь начинает перетаскивать внутри холста, вы используете дельту мыши с той точки, с которой он начал перетаскивать, чтобы определить, как далеко повернуть.Поскольку пользователь удерживает нажатой кнопку, он не будет случайно щелкать мышью.
- Наведите курсор на края холста, чтобы повернуть, аналогично RTS.Это будет происходить медленнее, но, вероятно, будет наиболее интуитивным и легким для случайного обнаружения пользователем.
- Используйте клавиатуру, чтобы выглядеть, как FPS-игры перед мышью (такие как Doom).
Стоит отметить, что в Firefox есть запрос открытой функции для блокировки мыши.Но, к сожалению, ни это, ни скрытие мыши, ни полноэкранный режим не являются частью спецификации WebGL.
Все эти функции поддерживаются Unity, так что это может быть путь к поиску, если вам действительно нужны элементы управления FPS.