两指缩放 两指旋转模型共存 避免冲突和抖动的解决办法
最近在改之前的AR游戏Demo,想努力一下上个架,需要在非AR模式加入两指手势识别,因为本身游戏玩法的输入方式是一指滑动,所以设定两指同时滑动旋转模型,手势识别放大缩小。
看了一下网上普遍比较多的是单指滑动旋转模型,两指缩放。还有人说两指同时判断滑动旋转和缩放会有冲突且有抖动。其实我觉得是很好避免的。但是没有看到相关的内容,自己写了一下就发上来吧。
不是最好的办法,但是的确可以解决问题。
具体思路就是两指操作以两指距离做区分,两指距离比较近的情况视为滑动旋转,两指距离较远视为缩放。(以屏幕最宽边1/3长度为界)
具体代码见下。
if (Input.touchCount > 1)//多指操作
{
Touch t1 = Input.GetTouch(0);
Touch t2 = Input.GetTouch(1);
//单点触控记录初始点
if (t2.phase == TouchPhase.Began)
{
startFingerPos = t2.position;
}
endFingerPos = t2.position;//实时手指位置
DoubleTouchCurrDis = Vector2.Distance(t1.position, t2.position);//实视两指距离