AR开发--(二)手势识别-FingerGestures

2020-06-02 16:59:25 浏览数 (2)

网络资源,如侵权请联系我删除,本文不产生商业利益

写这篇文章其实已经做完所有的开发工作,今天周末所以搞起,因为项目需要的是手指在屏幕上操作。所以寻找插件,发现这个需求还是蛮多的。

1、导入资源

导入资源加群获取:134688909

2、查看目录

目录,红框是导入资源的包裹

加群获取资源:134688909

内部脚本

关于手势脚本

少写的是捏的手势识别脚本

3、开搞

FingerGesture的作用是管理用户输入和识别手势和鼠标或手指事件。

Paste_Image.png

代码语言:javascript复制
参数一览:
make persistent : 设置场景跳转后保持不销毁,FingerGestures 单例在跨场景后一直有
Detect Unity Remote: 在Unity中统一检测
Mouse Input Provider Prefabs : 鼠标输入预制
Touch Input Provider Prefabs :  手势输入预制
4、开发案例

我们想让用户的手指做一些特定的动作来达到程序的多样性

单击:在上面我们已经知道是TapRecognizer

Paste_Image.png

Required Taps:连续轻击的次数。,我们可以在代码中获取

代码语言:javascript复制
 int count = gesture.Taps;
// 按下最长时间
float time =  gesture.ElapsedTime;

Max Delay Between Taps:两次轻击间最大的时间间隔(单位秒) Movement Tolerance : 两次敲击的位置偏差大小 Max Duration:最大可以识别的手指数

其实就是我们屏幕坐标系。。。打印结果:

打印点击的位置信息

原理:其实通过Unity的事件通知SendMessage来传递消息

手势识别

每种手势都有自己的脚本,我们只需要简单的实现它就是ok的

1、添加对应的手势脚本,设置它的属性 2、监听它的手势事件和对应响应。作为手势事件通知的一部分,GestureRecognizer传递一个包含相关信息(位置,手指触屏点列表,选择的场景物件,相关的GestureRecognizer等)的事件参数。一个手势识别器有以下监听事件的方式: 1、使用标准的.net 委托事件模型,每一个手势识别器都暴露一个.net事件接口 2、使用unity的SendMessage()函数 : 本质来讲这个内部主要是封装Api,还有我们获取相关的游戏对象是通过射线检测来进行识别操纵

Paste_Image.png

创建我们的手势

Paste_Image.png

Paste_Image.png

将创建好的手势进行应用

Paste_Image.png

接下来利用我们的点图案识别

是不是很简单

对勾被识别了,通过测试我们发现只要不是对勾是不会被识别的。

当然我们还可以控制组件的所在层来进行更高效的操作

具体使用简单明了,相信你会很快明白

5、资料来源

http://blog.csdn.net/zkq666666/article/details/47722391

0 人点赞