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