Unity中Touch的使用——转自龙同学,ZizerZhang
原文链接:http://blog.csdn.net/sinat_20559947/article/details/49365135
// 手指刚触摸到屏幕的时候 Input.GetTouch(0).phase == TouchPhase.Began; // 手指在屏幕上移动 Input.GetTouch(0).phase == TouchPhase.Moved; // 手指触摸屏幕,但并未移动 Input.GetTouch(0).phase == TouchPhase.Stationary; // 手指从屏幕上移开,这是一个触控的最后状态 Input.GetTouch(0).phase == TouchPhase.Ended; // 系统取消追踪触控。这常发生在用户把屏幕放到脸上或者同时触控超过了5根手指,同样也是触控的最后一个状态 Input.GetTouch(0).phase == TouchPhase.Canceled;
原文链接:http://blog.csdn.net/zhangzhen551/article/details/40116077
<pre name="code" class="csharp"> Vector2 oldFingerPosition1; Vector2 oldFingerPosition2; void Start() { //允许多点触屏 Input.multiTouchEnabled=true; } void Update () { //判断当前触摸屏幕的手指个数 该函数可自定义 然后在Update()里面调用 也可以直接在Update()里面写 if (Input.touchCount <= 0) { return; } else if (Input.touchCount > 1)//当有多个手指触屏 { if (Input.GetTouch(0).phase == TouchPhase.Began || Input.GetTouch(1).phase == TouchPhase.Began) { oldFingerPosition1 = Input.GetTouch(0).position; oldFingerPosition2 = Input.GetTouch(1).position; } if (Input.GetTouch(0).phase == TouchPhase.Moved || Input.GetTouch(1).phase == TouchPhase.Moved) { Vector2 newFingerPosition1 = Input.GetTouch(0).position; Vector2 newFingerPosition2 = Input.GetTouch(1).position; float lendth1 = lenth2Point(oldFingerPosition1, oldFingerPosition2); float lendth2 = lenth2Point(newFingerPosition1, newFingerPosition2); float speedValue = (lendth2 - lendth1) / 400; Camera.main.transform.Translate(0, 0, speedValue * Time.deltaTime);//移动相机 在z轴上变化 } } } //计算两点之间的距离 public float lenth2Point(Vector2 oP1, Vector2 oP2) { return Mathf.Sqrt((oP1.x - oP2.x) * (oP1.x - oP2.x) + (oP1.y - oP2.y) * (oP1.y - oP2.y)); }