在unity自带的asset store搜索 Lean touch ,然后找到对应的资源,然后全部都导入到项目中。
1、开启和关闭
private void OnEnable()
{
LeanTouch.OnFingerDown += HandeFingerDown;
LeanTouch.OnFingerSet += HandleFingerSet;
LeanTouch.OnFingerUp += HandleFingerUp;
}
private void OnDisable()
{
LeanTouch.OnFingerDown -= HandeFingerDown;
LeanTouch.OnFingerSet -= HandleFingerSet;
LeanTouch.OnFingerUp -= HandleFingerUp;
}
2、使用
private void HandeFingerDown(LeanFinger finger)
{
//按下
}
//移动
private void HandleFingerSet(LeanFinger finger)
{
if (this.running)
{
var fingers = LeanTouch.GetFingers(false, false, 1);//参数1和2为false时为不接受任何UI的屏蔽事件,两个都为true时则会接受UI层的屏蔽事件。
if (fingers.Count > 0)
{
this.delta += LeanGesture.GetScaledDelta(fingers);
if (!this.stoneCtrl.Rotating && !dragging)
{
//this.delta.magnitude是拖动的距离
if (this.delta.magnitude >= DragThreshold)
{
// 判断上/下角度:-45/45,-135/-180, 135/180
var angle = Mathf.Atan2(this.delta.x, this.delta.y) * Mathf.Rad2Deg;
if ((angle >= -DesiredAngle && angle <= DesiredAngle) || angle <= -(180 - DesiredAngle) || angle >= (180 - DesiredAngle))
{
this.dragging = true;
this.stoneCtrl.Dragging = true;
}
}
}
}
}
}
private void HandleFingerUp(LeanFinger finger)
{
//抬起
}