原文链接: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));
}