unity手势插件《FingerGestures 》使用入门
什么是FingerGestures?
FingerGestures是Unity上,非常热门的一款用于处理用户输入的插件
为什么要使用FingerGestures?
1:它统一了鼠标点击和用户触摸的输入模型。使得我们可以在UnityEditor里面就可以方便地进行触摸测试(而不必发布到机器上)
2:它提供了丰富的触摸、手势事件支持
3:使用符合KISS原则,不需要复杂的配置,即可实现功能
4:这个吊了:允许用户自定义手势触发图案(无尽之剑的手势触发技能,用它轻松实现)
相信你已经迫不及待开始这段传奇之旅了。下面通过一个简单Tap(点击)事件的例子:触摸屏幕上的物体,输出碰撞的物体名称和碰撞点;
OK,让我们开始了解这个神器
入门
1:导入FingerGestures的Unity安装包,默认位置在Plugins/FingerGestures/目录下
2:创建一个场景,将FingerGestures这个prefab拖进场景

3:创建一个空的GameObject(也可以用现有的),我们需要将触摸的脚本挂载到这个上面
4:点击该GameObject的属性窗口,在弹出的窗口选择FingerGestures,然后依次在如下两个选项下,找到Tap Recognizer 和Screen RayCaster

5:将你场景里面的Camera的Tag设置成MainCamera(推荐)
或者你需要告诉FingerGestures,那个Camera才是它需要的(不推荐,个人测试,遇到碰撞优先级错误的问题)
设置Tag法:

或者手动指定法:
找到第4步骤添加的Screen RayCaster组件,指定相机

6:编写测试代码
FingerGestures里面方法传递有两种方式
1:使用c# 代理方式(推荐,性能好)
2:类似Unity的SendMessage()广播方式(方便,性能略低)
第1种代理法:创建一个脚本,黏贴下面的代码,挂载到第三步骤创建的GameObject就好了
using UnityEngine; [RequireComponent(typeof(TapRecognizer))]
public class InputHelper : MonoBehaviour
{
// Use this for initialization
void Start ()
{
TapRecognizer tapRecognizer = GetComponent<TapRecognizer> ();
tapRecognizer.OnGesture += Tap_Gesture; }
void Tap_Gesture (TapGesture e)
{
GameObject hittedObject = e.Selection; if (null != hittedObject) { Vector3 hitPos3d = e.Raycast.Hit3D.point;
Debug.Log (hittedObject.name + " pos:" + hitPos3d); } else { }
}
}
第二种广播法:
1:设置Tap Recognizer,如下把我们第三部创建的GameObject拖放到MessageTarget上

2:代码:
去掉第一种代理法里Start()方法,就可以了
总结:
1:本文中推荐的步骤或者少配置、或者性能好,请使用的时候倾向于这些方式。
2:要碰撞的物体请设置一个Collider,在Component的Physics目录下。
3:添加的两个组件的作用:
Tap Recognizer:触摸事件识别类
Screen RayCaster:物体被碰撞的时候,需要知道这道光线从哪里过来(和摄像头的方向一致)
unity手势插件《FingerGestures 》使用入门的更多相关文章
- 2017年Unity游戏开发视频教程(入门到精通)
本文是我发布的一个Unity游戏开发的学习目录,以后我会持续发布一系列的游戏开发教程,都会更新在这个页面上,适合人群有下面的几种: 想要做独立游戏的人 想要找游戏开发相关工作的人 对游戏开发感兴趣的人 ...
- 开发unity DLL插件
最近开发一款设备的SDK,想着要开发unity版本,怎么做呢?首先想到的就是在外部编写相关的驱动程序然后集成成几个dll作为unity的SDK使用了.So,我就开始了unity外部插件的研究之旅了. ...
- chrome插件编写基本入门
chrome插件编写基本入门 http://igeekbar.com/igeekbar/post/331.htm #精选JAVASCRIPTCHROME 作为一名程序猿,怎么能不会写chrome插件 ...
- (转)Unity Cinemachine插件,实现单目标和多目标之间切换
Unity Cinemachine插件学习笔记,实现单目标和多目标之间切换*版本要求Unity2017.1及以上. 参考资料: [官方] Unity 2017.1正式版发布 Cinemachine插件 ...
- unity常用插件
Unity3D常用插件,网址:http://jingyan.baidu.com/article/7f766daf4ef2844100e1d079.html ,想想自己也有小半年unity经验了,于是整 ...
- unity自带寻路Navmesh入门教程(一)
说明:从今天开始,我阿赵打算写一些简单的教程,方便自己日后回顾,或者方便刚入门的朋友学习.水平有限请勿见怪.不过请尊重码字截图录屏的劳动,如需转载请先告诉我.谢谢! unity自从3.5版本之后,增加 ...
- 【转】unity自带寻路Navmesh入门教程(一)
http://liweizhaolili.blog.163.com/blog/static/16230744201271161310135/ 说明:从今天开始,我阿赵打算写一些简单的教程,方便自己日后 ...
- 开源Unity小插件CheatConsole
我们在开发游戏的过程中,通常都需要一些快捷的方式来进行一些非常规的测试,这些功能一般被称作控制台或者GM指令,比如虚幻竞技场中,可以使用~键呼出控制台,输入一些指令即可进行快捷设置,比如设置分辨率,全 ...
- 编写 Unity Editor 插件
Editor Style Viewer 在开发过程中,我喜欢编写一些辅助的Editor插件,方便在游戏开发过程进行调试. 下面是摘自Asset Store的一个查看Unity 默认GUI样式的小工具 ...
随机推荐
- 推荐一个 HTML5在线的流程图工具——ProcessOn
一直想找个简单好用的UML建模工具,无意在茫茫百度中看见了网友推荐的N多工具,从中找了一个叫 ProcessOn 的工具,可以说非常棒.如果我是WEB开发人员,我肯定去深入研究HTML5啦,太令人着迷 ...
- Zabbix-3.0.3实现微信(WeChat)告警
导读 Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越多的企业开始使用zabbix结合微信作为主要的告警方式,这样可以及时有效的把告警信息推送到接收人,方便告 ...
- 获取Asset下文本内容和读取图片
import android.content.Context; import android.content.res.AssetManager; import android.graphics.Bit ...
- 教你如何在 Android 使用多线程下载文件
# 教你如何在 Android 使用多线程下载文件 前言 在 Android 日常开发中,我们会经常遇到下载文件需求,这里我们也可以用系统自带的 api DownloadManager 来解决这个问题 ...
- docker harbor 安装 使用总结
总结:没有验证,但是猜测. 我这个harbor的机器上 有起了一个 docker的 registry, 5000端口的,不知道是不是二者冲突. 猜测是这个情况. 1. 安装参考 收藏的链接 1.1 ...
- GO项目目录
|--bin |--pkg |--src 其中,bin存放编译后的可执行文件:pkg存放编译后的包文件:src存放项目源文件.一般,bin和pkg目录可以不创建,go命令会自动创建(如 go inst ...
- UIWindow和UIScreen
UIWindow和UIScreen 目录 概述 职责 实用操作 概述 UIWindow职责 包含了应用程序的可视化的内容 为视图和其他应用程序对象在触摸事件中提供了关键性的作用 与视图控制器一起协作来 ...
- Python全栈day20(装饰器基本理论)
一,什么是装饰器 装饰器:本质就是函数,功能是为其他函数添加附加功能 原则 1,不修改被修饰函数的源代码 2,不修改被修饰函数的调用方式 举例说明:有一个求和函数要求就算出函数的运行时间 正常代码应该 ...
- HDU 3450 Counting Sequences(线段树)
Counting Sequences Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/65536 K (Java/Other ...
- maven引用本地jar包
教程:http://www.cnblogs.com/dcba1112/archive/2011/05/01/2033805.html 安装 到下载maven: http://maven.apache. ...