菜鸟教程小白 发表于 2022-12-11 20:14:19

ios - Unity - 为什么 iPhone 6 和 7 的触摸输入行为不同?


                                            <p><p>我在 Update() 中有以下代码来拖动相机并检测对象的点击。当我们在 iphone 6 和 X 上试用时,它运行良好,但是当我们在 iPhone7 上试用时,拖动屏幕非常无响应,并且只有在您非常轻柔地触摸屏幕时才能点击对象。有人知道发生了什么吗?</p>

<pre><code>if (Input.touchCount &gt; 0 &amp;&amp; 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 &gt; 0 &amp;&amp; Input.GetTouch(0).phase == TouchPhase.Moved) {
             current_position = Input.GetTouch(0).position;
             LeftMouseDrag();

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

             cam.DOMoveY(target_position.y, 0.75f);
         } else if (!fingerMoved &amp;&amp; Input.touchCount &gt; 0 &amp;&amp; Input.GetTouch(0).phase == TouchPhase.Ended) {
             foreach (var item in storageList) {
               if (Vector2.Distance(item.transform.position, Camera.main.ScreenToWorldPoint(hit_position)) &lt; 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 &gt; camMaxY) {
         target_position.y = camMaxY;
   }
   if (target_position.y &lt; camMinY) {
         target_position.y = camMinY;
   }
}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我不确定它是否有所作为,但对于这类东西,使用 EventSystems 和 OnPointerClick/OnPointerDrag 处理程序更容易、更可靠。这样,至少在理论上,Unity 本身可以消除任何灵敏度差异。 (我不知道天气会不会这样做</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - Unity - 为什么 iPhone 6 和 7 的触摸输入行为不同?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/50756884/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/50756884/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - Unity - 为什么 iPhone 6 和 7 的触摸输入行为不同?