前段时间做了个Windows系统的大屏触控程序,最多同时支持十点触控,并且在各自的小窗口中要分别处理,即每个小窗口中的触点为一个处理组,判断其单点或多点操作。按以往移动端程序的触屏事件Input.GetTouch(int index)不满足需求,着实费了一番功夫。
首先分享常用的移动端触控方法,单指、双指操作。这里举例为单指操作模型旋转,双指同向移动操作模型平移,双指反向移动操作模型缩放。单指操作不再赘述,双指操作我选用向量判断。
public void SingleTouch()
{
Debug.Log("SingleTouch");
if (Input.GetTouch(0).phase == TouchPhase.Began || !isSingleFinger)
{
//在开始触摸或者从两字手指放开回来的时候记录一下触摸的位置
preSingleTouchPosition = Input.GetTouch(0).position;
}
if (Input.GetTouch(0).phase == TouchPhase.Moved)
{
currentModel.transform.Rotate(Vector3.up, -Input.GetTouch(0).deltaPosition.x * 0.5f);
preSingleTouchPosition = Input.GetTouch(0).position;
}
isSingleFinger = true;
}
public void Do