C# 统一检测触摸输入区域

C# 统一检测触摸输入区域,c#,input,unity3d,touch,C#,Input,Unity3d,Touch,这是一个简单的乒乓球游戏。脚本被添加到两个拨片中,我想做的是通过触摸输入使拨片沿屏幕区域移动 左上区域:左桨向上 左下区域:左桨向下 右上区域:右划桨向上 右下区域:右桨向下 出于某种原因,无论我做什么,只要把右桨向上移动就行了。我想做一些适当的调试,但我不知道如何调试触摸除了加载到我的手机的APK和实际接触的实验 using UnityEngine; using System.Collections; public class MovePaddle : MonoBehaviour { pu

这是一个简单的乒乓球游戏。脚本被添加到两个拨片中,我想做的是通过触摸输入使拨片沿屏幕区域移动

左上区域:左桨向上

左下区域:左桨向下

右上区域:右划桨向上

右下区域:右桨向下

出于某种原因,无论我做什么,只要把右桨向上移动就行了。我想做一些适当的调试,但我不知道如何调试触摸除了加载到我的手机的APK和实际接触的实验

using UnityEngine;
using System.Collections;

public class MovePaddle : MonoBehaviour {

public KeyCode Up;
public KeyCode Down;

void FixedUpdate () {
    if (Input.GetKey (Up)) {
        transform.Translate(new Vector2(0.0f, 0.5f));
    }

    if (Input.GetKey (Down)) {
        transform.Translate(new Vector2(0.0f, -0.5f));
    }

    if (Input.touchCount == 1 && Input.GetTouch(0).phase == TouchPhase.Stationary) {
        TouchEval(Input.GetTouch(0).position);
    }
}

void TouchEval (Vector2 pos) {  
    if (pos.x < 0 && gameObject.name == "paddleLeft") {
        if (pos.y > 0) {
            transform.Translate(new Vector2(0.0f, 0.5f));
        } 
        else {
            transform.Translate(new Vector2(0.0f, -0.5f));
        }
    }

    if (pos.x > 0 && gameObject.name == "paddleRight") {
        if (pos.y > 0) {
            transform.Translate(new Vector2(0.0f, 0.5f));
        } 
        else {
            transform.Translate(new Vector2(0.0f, -0.5f));
        }
    }
}

}

Oops,我运行了一些传感器应用程序,很明显,左下角的顶点是0,0。最初我假设0,0在中心,这就是为什么我检查坐标的极性。我不知道。监视器也是一样。啊,是吗?这是我第一次编写需要分辨率的代码。我可能做了一个错误的假设,因为这是Unity 0,0在中间的方式。