在Unity中检测触摸输入区域

时间:2014-11-28 21:59:19

标签: c# input unity3d touch

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

左上角区域:左上划线

左下区域:左侧划桨

右上区域:右上划线

右下区域:向右划桨

出于某种原因,无论我做什么,只需向右移动右侧桨。我想做一些正确的调试,但除了将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));
        }
    }
}

}

0 个答案:

没有答案