该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
随意写的 鼠标就可以测试 多点触控 去看下touch函数 ,代码如下
//触发的最小移动距离
public float minDistance = 250;
//角度
public float angle;
private bool touchEnd = true;
private Vector2 startPos = Vector2.zero;
private Vector2 endPos = Vector2.zero;
void OnGUI ()
{
if (Event.current.type == EventType.MouseDown) {
//记录鼠标按下的位置
startPos = Event.current.mousePosition;
}
if (Event.current.type == EventType.MouseDrag) {
//记录鼠标拖动的位置
endPos = Event.current.mousePosition;
if (touchEnd) {
AnalyzeSwipe (startPos, endPos);
}
}
if (Event.current.type == EventType.MouseDrag) {
//触摸结束重置
touchEnd = true;
}
}
void AnalyzeSwipe(Vector2 start,Vector2 end)
{
if (Vector2.Distance (start, end) < minDistance) {
return;
}
//识别出滑动禁用事件
touchEnd = false;
Vector2 direction = end - start;
float side = end.x > start.x ? 1 : -1;
float num = Vector2.Angle(direction,-Vector2.up);
if (side == 1) {
angle = num;
} else {
angle = 360 - num;
}
if(angle >337.5 || angle <=22.5){
Debug.Log ("up");
}else
if(angle >22.5 && angle <=67.5){
Debug.Log ("up-right");
}else
if(angle >67.5 && angle <=112.5){
Debug.Log ("right");
}else
if(angle >112.5 && angle <=157.5){
Debug.Log ("down-right");
}else
if(angle >157.5 && angle <=202.5){
Debug.Log ("down");
}else
if(angle >202.5 && angle <=247.5){
Debug.Log ("down-left");
}else
if(angle >247.5 && angle <=292.5){
Debug.Log ("left");
}else
if(angle >292.5 && angle <=337.5){
Debug.Log ("up-left");
}
startPos = endPos;
}