Unity управление мышью под WSA

183
26 ноября 2017, 11:42

При сборке игры под Windows 10, метод

Input.GetAxis("Mouse X")

Ведет себя иначе, нежели в редакторе. Если мы блокируем курсор в любом месте экрана

Cursor.lockState = CursorLockMode.Locked;

И затем разлочиваем его

 Cursor.lockState = CursorLockMode.None;

То в случае с редактором, курсор появляется ровно на середине экрана. В случае с приложением под Windows 10, курсор появляется там где я его оставил. И при этом, когда мы блокируем курсор снова, у нас скачет

Input.GetAxis("Mouse X")

Как будто мы перетаскиваем мышь в центр.

Т.е. подытоживая. Windows 10 app: Если у нас мышь находится не по центру экрана, то во момент переключения состояния с None на Lock, исчезнувшая мышь, судя по всему, летит в центр экрана, создавая на

Input.GetAxis("Mouse X") и Input.GetAxis("Mouse Y") 

соответствующие значения.

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

Как подобное решить? Я вижу несколько вариантов - либо не снимать показания с этих осей за кадр с Lock\Unlock, либо принудительно переставлять мышь в центр до Lock, как в редакторе. И то и другое вижу способом костыльным, буду рад увидеть предложения получше.

READ ALSO
Парсинг цвета с помощью Html Аgility Pack

Парсинг цвета с помощью Html Аgility Pack

Требуется добыть значения цвета с палитры сайта coloradobe

142
Создание таблицы через document.write

Создание таблицы через document.write

Сразу говорю - другие варианты кроме documentwrite не подходят

272
Как зарефакторить множество return в методе

Как зарефакторить множество return в методе

Подскажите паттерны или решения для того чтобы писать лучше Пример кода

244