Unity3D插件之FingerGesture的简单使用

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/qq_34937637/article/details/82625395

FingerGesture简介


FingerGesture下载地址
FingerGesture帮助文档
FingerGesture是基于Unity的一个主用于移动设备输入的插件,可以完成基本的移动设备的手势识别。其中,基本的手势操作可以在Unity调试时使用鼠标模拟(原理在于基本手势事件的触发是使用射线实现的)。


1.导入FingerGesture插件后,将Prefabs文件夹中FingerGestures预制体拖入场景中
注意:没有添加这个预制体无法使用插件,会报错
这里写图片描述

2.以组件的形式给物体(用来接收手势的空物体)添加关于手势的事件
这里写图片描述
脚本对应事件说明:

  1. Drag Recognizer : 拖拽识别事件 鼠标或手指触摸屏幕移动时触发
  2. Long Press Recognizer: 长按识别事件 鼠标或手指长按屏幕不动时触发
  3. Pinch Recognizer: 手指挤压事件 两根手指向中间挤压时触发
  4. PointCloud Recognizer: 点云事件 进行自定义手势时触发
  5. Swipe Recognizer: 滑动事件 进行方向滑动时触发
  6. Twist Recognizer: 手指旋转事件 两根手指进行旋转方向时触发

3.给事件添加执行脚本(将接受消息的游戏物体添加上去)
这里写图片描述
触发事件,会执行脚本中以下代码:

void OnFingerDown(FingerDownEvent data)
{
    //Debug.Log("OnFingerDown");
    //Debug.Log("===" + data.Finger.Index);
}

void OnFingerStationary(FingerMotionEvent data)
{
    //Debug.Log("OnFingerStationary");
    //Debug.Log(data.Finger.Index);
}

void OnFingerMove(FingerMotionEvent data)
{
    if (lastPosition != Vector2.zero && data.Position.x - lastPosition.x > 0)
    {
        cube.Rotate(new Vector3(0, 5, 0));
    }
    //Debug.Log(data.Detector.name)
    //Debug.Log(data.Position);
    //Debug.Log("OnFingerMove");

    //Debug.Log(data.Finger.Index);
    this.lastPosition = data.Position;
}

这里写图片描述
可以通过事件函数中的参数来得到一些关于手势的信息
Detector:返回检测手势的侦听器(即挂载接受手势组件的物体)
ElapsedTime:从开始stated状态到当前的时间(即手指作用的时间)
Finger:返回当前的手指对象
Phase:手势状态
Position:手势的位置

猜你喜欢

转载自blog.csdn.net/qq_34937637/article/details/82625395