@Rem531

Как сделать, чтобы при запуске игры не было видно курсор?

Использую Unity 21 года, и при запуске игры в редакторе, курсор мыши пропадает только при нажатии на само окно.
Если пытаться следующим кодом вручную убирать курсор, все такая же проблема, курсор попросту не исчезает пока не кликнуть по окну с игрой
private void Start()
    {
        Cursor.lockState = CursorLockMode.Locked;
        Cursor.visible = false;
    }

При билде игры все работает корректно.
В настройках окна Game выбран пункт Play Focused.
  • Вопрос задан
  • 876 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Ezekiel4
Охотник на пиратов и сборщик монолитов
Сам Unity не убирает курсор, а просто его прячет. Если вы резко двинете мышью, то можете заметить, как выделяются элементы под курсором за пределами окна сцены и Unity вообще. А если вы будете транслировать экран через Zoom или Google Meet, то заметите, что курсор на трансляции виден.

Эту проблему можно решить, написав дополнительное расширение редактора, но обычно с этим не парятся, так как в игре всё работает как часы. Будет это работать примерно следующим образом:
1) Используя EditorApplication.playModeStateChanged вы можете отследить момент входа в PlayMode
2) Используя Cursor вы можете узнать координаты курсора, а затем скрыть указатель и залочить его позицию
А при выходе из PlayMode показать и разблокировать. Чтобы разделить функционал можно использовать платформо-зависимую компиляцию, типа:
public void HideCursor() {

#if UNITY_EDITOR

	// hide & lock using Cursor class

#else

	Cursor.lockState = CursorLockMode.Locked;

#endif

}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы