写这篇文章其实已经做完所有的开发工作,今天周末所以搞起,因为项目需要的是手指在屏幕上操作。所以寻找插件,发现这个需求还是蛮多的。
1、导入资源
2、查看目录
关于手势脚本
3、开搞
FingerGesture的作用是管理用户输入和识别手势和鼠标或手指事件。
参数一览:
make persistent : 设置场景跳转后保持不销毁,FingerGestures 单例在跨场景后一直有
Detect Unity Remote: 在Unity中统一检测
Mouse Input Provider Prefabs : 鼠标输入预制
Touch Input Provider Prefabs : 手势输入预制
4、开发案例
我们想让用户的手指做一些特定的动作来达到程序的多样性
单击:在上面我们已经知道是TapRecognizer
Required Taps:连续轻击的次数。,我们可以在代码中获取
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,还有我们获取相关的游戏对象是通过射线检测来进行识别操纵
创建我们的手势
将创建好的手势进行应用
接下来利用我们的点图案识别
对勾被识别了,通过测试我们发现只要不是对勾是不会被识别的。
当然我们还可以控制组件的所在层来进行更高效的操作
具体使用简单明了,相信你会很快明白