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样式的小工具 ...
随机推荐
- P2483 [SDOI2010]魔法猪学院
P2483 [SDOI2010]魔法猪学院 摘要 --> 题目描述 iPig在假期来到了传说中的魔法猪学院,开始为期两个月的魔法猪训练.经过了一周理论知识和一周基本魔法的学习之后,iPig对猪世 ...
- Docker容器技术(目录)
Docker介绍和部署请自行搜索官方网站 [01]Docker学习:镜像管理 [02]Docker学习:容器管理 [03]Docker学习:网络管理 [04]Docker学习:Dockerfile [ ...
- Struts2_day01--课程安排_Struts2概述_入门
Struts2_day01 Struts2课程安排 今天内容 Struts2概述 Struts2框架入门 导入源文件 Struts2执行过程 查看源代码 Struts2的核心配置文件 标签packag ...
- Leetcode: Anagrams(颠倒字母而成的字)
题目 Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will ...
- 扩展jquery scroll事件,支持 scroll start 和 scroll stop
效果预览: github: https://besswang.github.io/webapp-scroll/ 参考地址: http://www.ghugo.com/special-scroll-ev ...
- ISP (互联网服务提供商)
ISP(Internet Service Provider),互联网服务提供商,即向广大用户综合提供互联网接入业务.信息业务.和增值业务的电信运营商. ICP(Internet Content Pro ...
- Python 打包程序
一.打包成exe 1.安装pyinstaller #只要你能FQ连接https://pypi.python.org/pypi下载会很快,不用担心超时问题. https://pypi.python.or ...
- Java Swing 日历 控件
这是我改写的网上的DateChooser代码后的作品,使用效果如图所示.用法参考备注,以及Main函数中用法. /** * * Copyright: Ares. * All Rights Reserv ...
- 【opencv】c++ 读取图片 & 绘制点 & 绘制文字 & 保存图片
//read pic ]; sprintf(path, "%s%d/%s", image_dir.c_str(), cam_num, filename.c_str()); cv:: ...
- CListCtrl控件使用方法总结
今天第一次用CListCtrl控件,遇到不少问题,查了许多资料,现将用到的一些东西总结如下: 以下未经说明,listctrl默认view 风格为report 相关类及处理函数 MFC:CListCtr ...