Прокрутка экрана и зона джойстика

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

Я понятия не имею.

Я хотел бы ограничить сенсорную область и как я могу это сделать

Шаблоны Angular PrimeNg
Шаблоны Angular PrimeNg
Как привнести проверку типов в наши шаблоны Angular, использующие компоненты библиотеки PrimeNg, и настроить их отображение с помощью встроенной...
Создайте ползком, похожим на звездные войны, с помощью CSS и Javascript
Создайте ползком, похожим на звездные войны, с помощью CSS и Javascript
Если вы веб-разработчик (или хотите им стать), то вы наверняка гик и вам нравятся "Звездные войны". А как бы вы хотели, чтобы фоном для вашего...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Начала с розового дизайна
Начала с розового дизайна
Pink Design - это система дизайна Appwrite с открытым исходным кодом для создания последовательных и многократно используемых пользовательских...
Шлюз в PHP
Шлюз в PHP
API-шлюз (AG) - это сервер, который действует как единая точка входа для набора микросервисов.
14 Задание: Типы данных и структуры данных Python для DevOps
14 Задание: Типы данных и структуры данных Python для DevOps
проверить тип данных используемой переменной, мы можем просто написать: your_variable=100
1
0
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я бы использовал IsPointerOverGameObject() (документация).

В вашей логике прокрутки проверьте, не находится ли указатель с данным идентификатором над объектом EventSystem, прежде чем поворачивать камеру. Что-то вроде этого:

if(!EventSystem.current.IsPointerOverGameObject()) {
   // the pointer is not over any UI objects, rotate the camera
} else {
   // the pointer is over a UI object, do not rotate the camera
}

При необходимости в пространстве пользовательского интерфейса, которое пользователь будет использовать для прокрутки и поворота камеры, вы можете добавить прозрачное изображение с целью Raycast, установленной на false, чтобы гарантировать, что EventSystem.current.IsPointerOverGameObject() вернет false.

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

Winston 21.11.2022 16:19

Вы можете избежать этого, выполнив вышеуказанную проверку только на TouchPhase.Began (документация ), если вы разрабатываете для мобильных устройств, или, в более общем смысле, OnPointerDown ( документация). Затем вы можете сохранить значение, возвращаемое IsPointerOverGameObject(), в логическое значение и использовать его, чтобы проверить, нужно ли вам поворачивать камеру или нет в течение всего времени, пока пользователь касается/нажимает вниз.

Lorenzo Goldoni 21.11.2022 16:58

Как я могу это сделать. В настоящее время я использую новую систему ввода.

Winston 22.11.2022 06:28

У меня есть сумасшедшая идея, я собираюсь использовать плавающий джойстик вместо сенсорной штуки и новую систему ввода.

Winston 23.11.2022 09:13

Другие вопросы по теме