Unity - Почему iPhone 6 и 7 ведут себя по-разному для сенсорного ввода? - PullRequest
0 голосов
/ 08 июня 2018

У меня есть код ниже в Update (), чтобы перетащить камеру, а также обнаружить щелчки на объектах.Когда мы примеряем iphone 6 и X, все работает хорошо, но когда мы примеряем iPhone7, экран перетаскивания очень не отвечает, и нажатие на объекты работает только тогда, когда вы очень легко касаетесь экрана.У кого-нибудь есть идеи о том, что происходит?

if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began) {
             fingerMoved = false;

             if (_eventSystem.IsPointerOverGameObject(Input.GetTouch(0).fingerId)) {
                 fingerMoved = true;
             }
             hit_position = Input.GetTouch(0).position;
             camera_position = cam.position;
         } else if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved) {
             current_position = Input.GetTouch(0).position;
             LeftMouseDrag();

             if (Vector2.Distance(hit_position, current_position) > 7f) {
                 fingerMoved = true;
             }

             cam.DOMoveY(target_position.y, 0.75f);
         } else if (!fingerMoved && Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Ended) {
             foreach (var item in storageList) {
                 if (Vector2.Distance(item.transform.position, Camera.main.ScreenToWorldPoint(hit_position)) < 0.5f) {
                     sideMenu.Open(item.myNo);
                 }
             }
         }
 void LeftMouseDrag() {
     Vector3 direction = Camera.main.ScreenToWorldPoint(current_position) - Camera.main.ScreenToWorldPoint(hit_position);
     direction.x = 0f;
     direction = direction * -1;
     target_position = camera_position + direction;
     if (target_position.y > camMaxY) {
         target_position.y = camMaxY;
     }
     if (target_position.y < camMinY) {
         target_position.y = camMinY;
     }
 }

Ответы [ 2 ]

0 голосов
/ 19 июля 2018

Проблема ушла сама собой, я понятия не имею, что пошло не так вначале.

0 голосов
/ 08 июня 2018

Я не уверен, имеет ли это значение, но для такого рода вещей проще и надежнее использовать EventSystems и OnPointerClick / OnPointerDrag.Таким образом, по крайней мере в теории, любые различия в чувствительности могут быть выровнены самим Unity.(Я не знаю, погода это делает или нет, просто

...