У меня проблема с джойстиком и пролистыванием экрана. Я создал смахивание для поворота камеры, используя новую систему ввода, и у меня есть джойстик, созданный в левом нижнем углу. в чем моя проблема, когда я использую джойстик, функции джойстика и пролистывания экрана работают вместе. И это не хорошо, потому что я не хочу, чтобы функция смахивания реагировала на нажатие джойстика.
Я понятия не имею.
Я хотел бы ограничить сенсорную область и как я могу это сделать
Я бы использовал 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.
Вы можете избежать этого, выполнив вышеуказанную проверку только на TouchPhase.Began
(документация ), если вы разрабатываете для мобильных устройств, или, в более общем смысле, OnPointerDown
( документация). Затем вы можете сохранить значение, возвращаемое IsPointerOverGameObject()
, в логическое значение и использовать его, чтобы проверить, нужно ли вам поворачивать камеру или нет в течение всего времени, пока пользователь касается/нажимает вниз.
Как я могу это сделать. В настоящее время я использую новую систему ввода.
У меня есть сумасшедшая идея, я собираюсь использовать плавающий джойстик вместо сенсорной штуки и новую систему ввода.
как исправить когда сенсорное нажатие на джойстик выходит за границы и он начинает взаимодействовать с сенсорным экраном что заставляет камеру вращаться.