Unity 手指触摸的方向(单手)

时间:2023-03-09 03:21:48
Unity 手指触摸的方向(单手)

最近写了一个跑酷游戏,总结下里面的知识点:O(∩_∩)O~

using UnityEngine;
using System.Collections; public class Demo : MonoBehaviour
{
public Vector3 lastMonseDown; /// <summary>
/// 判断手指触摸的方向
/// </summary>
/// <returns></returns>
TouchDir GetTouchDir()
{
//记录第一次手指点击的坐标点
if (Input.GetMouseButtonDown())
{
lastMonseDown = Input.mousePosition;
} //UICamera.hoveredObject防止NGUI点击穿透问题
if (Input.GetMouseButtonUp() && UICamera.hoveredObject == null)
{
//结束坐标-开始坐标
Vector3 mouseUp = Input.mousePosition;
Vector3 touchOffset = mouseUp - lastMonseDown; //滑动超过50像素,算一次正确的滑动
if (Mathf.Abs(touchOffset.x) > || Mathf.Abs(touchOffset.y) > )
{
if (Mathf.Abs(touchOffset.x) > Mathf.Abs(touchOffset.y) && touchOffset.x > )
{
return TouchDir.Right;
}
else if (Mathf.Abs(touchOffset.x) > Mathf.Abs(touchOffset.y) && touchOffset.x < )
{
return TouchDir.Left;
}
else if (Mathf.Abs(touchOffset.x) < Mathf.Abs(touchOffset.y) && touchOffset.y > )
{ return TouchDir.Top;
}
else if (Mathf.Abs(touchOffset.x) < Mathf.Abs(touchOffset.y) && touchOffset.y < )
{ return TouchDir.Bottom;
}
}
else
{
return TouchDir.None;
}
} return TouchDir.None;
} } /// <summary>
/// 触摸的方向
/// </summary>
public enum TouchDir
{
None,
Left,
Right,
Top,
Bottom
}