这节课,我们主要讲下单个手指的测试。比如单击啊,双击啊,拖动,单手滑动等。

单击:

public class TouchTest : MonoBehaviour {
// Subscribe to events
void OnEnable(){
//启动On_SimpleTap监听,也就是手指单击屏幕,就会触发On_MySimpleTap的方法执行
EasyTouch.On_SimpleTap += On_MySimpleTap;
}
// Unsubscribe
void OnDisable(){
EasyTouch.On_SimpleTap -= On_MySimpleTap;//去除监听
}
// Unsubscribe
void OnDestroy(){
EasyTouch.On_SimpleTap -= On_MySimpleTap;//去除监听
}
// Touch start event
public void On_MySimpleTap(Gesture gesture){
gameObject.renderer.material.color = new Color(1,1,1,1);//单击的时候将Cube的颜色改为白色
}
}

  这里我新建一个场景,有一个cube,我们把写好的脚本拖到Cube上。(注意下,这里cube的Mesh Renderer只有一个Material)

点击运行程序,单击cube,发现Cube变成白色。

长单击:

public class TouchTest : MonoBehaviour {
// Subscribe to events
void OnEnable(){
//启动On_LongTap监听,也就是手指长时间单击屏幕,就会触发On_MySimpleLongTap的方法执行
EasyTouch.On_LongTap += On_MySimpleLongTap;
}
// Unsubscribe
void OnDisable(){
EasyTouch.On_LongTap -= On_MySimpleLongTap;//去除监听
}
// Unsubscribe
void OnDestroy(){
EasyTouch.On_LongTap -= On_MySimpleLongTap;//去除监听
}
// Touch start event
public void On_MySimpleLongTap(Gesture gesture){
gameObject.renderer.material.color = new Color(1,1,1,1);//单击的时候将Cube的颜色改为白色
}
}

  这里我们长单击的时间在哪里可以改,就是我上篇讲到的,改了Long Tap time就行了,这里默认的是1秒。

这里细心的小伙伴可能观察到了,在长单击中有On_LongTapStart和On_LongTapEnd这两个委托,这个就是在长点击开始和结束只调用一帧的。

public class TouchTest : MonoBehaviour {
// Subscribe to events
void OnEnable(){
//启动On_LongTap监听,也就是手指长时间单击屏幕,就会触发On_MySimpleLongTap的方法执行
EasyTouch.On_LongTapStart += On_MySimpleLongTapStart;
EasyTouch.On_LongTap += On_MySimpleLongTap;
EasyTouch.On_LongTapEnd += On_MySimpleLongTapEnd;
}
// Unsubscribe
void OnDisable(){
EasyTouch.On_LongTap -= On_MySimpleLongTap;//去除监听
}
// Unsubscribe
void OnDestroy(){
EasyTouch.On_LongTap -= On_MySimpleLongTap;//去除监听
}
// Touch start event
public void On_MySimpleLongTap(Gesture gesture){
print ("Long tap");
gameObject.renderer.material.color = new Color(1,1,1,1);//单击的时候将Cube的颜色改为白色
}
public void On_MySimpleLongTapStart(Gesture gesture)
{
print("Long start");
}
public void On_MySimpleLongTapEnd(Gesture gesture)
{
print("Long End");
}
}

  运行,然后长点击cube不放,观察Console的打印结果:

发现在点击没松开之前,On_LongTap里面的方法会一直执行,但是start和end执行一次。

拖动:

这里我实现了一个小功能,就是用easytouch来拖动场景里面的物体,

public class TouchTest : MonoBehaviour {
// Subscribe to events
void OnEnable(){
//启动On_LongTap监听,也就是手指长时间单击屏幕,就会触发On_MySimpleLongTap的方法执行
EasyTouch.On_Drag += On_MyDrag;
EasyTouch.On_DragStart += On_MyDragStart;
EasyTouch.On_DragEnd += On_MyDragEnd;
}
// Unsubscribe
void OnDisable(){
//这里我就省力气不写了,无关大雅
}
// Unsubscribe
void OnDestroy(){ }
// Touch start event
public void On_MyDrag(Gesture gesture){
Vector3 position = gesture.GetTouchToWordlPoint(10);//这里的坐标是Vector3,所以呢这里的0表示的是z轴坐标,
//注意啦,这里的z是基于摄像机的z的,假如说你的摄像机的z坐标是
//-10的话,你这里写0,当你拖动的时候,他会变成-10的。实际上就是与
//表示摄像机z的距离
transform.position = position;
}
public void On_MyDragStart(Gesture gesture)
{ }
public void On_MyDragEnd(Gesture gesture)
{ }
}

  实际上,我们应该在start里面计算偏移的坐标,然后在拖动的里面减去偏移的坐标。这样不会点击物体的边缘,然后马上变到中心去了。

滑动和拖动类似,我就不讲了。拖动的运用场景很多,比如拖动地图啊,想coc那样的。还有想要移动某个物体啊等等。

Unity-EasyTouch插件之One Finger的更多相关文章

  1. 开发unity DLL插件

    最近开发一款设备的SDK,想着要开发unity版本,怎么做呢?首先想到的就是在外部编写相关的驱动程序然后集成成几个dll作为unity的SDK使用了.So,我就开始了unity外部插件的研究之旅了. ...

  2. (转)Unity Cinemachine插件,实现单目标和多目标之间切换

    Unity Cinemachine插件学习笔记,实现单目标和多目标之间切换*版本要求Unity2017.1及以上. 参考资料: [官方] Unity 2017.1正式版发布 Cinemachine插件 ...

  3. Unity——EasyTouch摇杆插件使用

    EasyTouch摇杆插件使用 Demo展示 双指缩放在电脑端无法掩饰,竖屏将就看看吧: 插件名叫EasyTouch,有需要给我留言,不想开仓库传了: 创建摇杆点这里: 初始化 On_Joystick ...

  4. unity常用插件

    Unity3D常用插件,网址:http://jingyan.baidu.com/article/7f766daf4ef2844100e1d079.html ,想想自己也有小半年unity经验了,于是整 ...

  5. 开源Unity小插件CheatConsole

    我们在开发游戏的过程中,通常都需要一些快捷的方式来进行一些非常规的测试,这些功能一般被称作控制台或者GM指令,比如虚幻竞技场中,可以使用~键呼出控制台,输入一些指令即可进行快捷设置,比如设置分辨率,全 ...

  6. 编写 Unity Editor 插件

    Editor Style Viewer 在开发过程中,我喜欢编写一些辅助的Editor插件,方便在游戏开发过程进行调试. 下面是摘自Asset Store的一个查看Unity 默认GUI样式的小工具 ...

  7. 【转】unity地形插件T4M使用帮助

    unity的地形系统在手机游戏中因为效率问题基本无法使用,只能通过T4M这个地形插件来进行优化制作.下面大概讲解一下使用流程及方法. 先中U3D里面用自带的地形系统刷出想要的地形和贴图.贴图可以大概刷 ...

  8. unity Dotween插件的简单介绍及示例代码

    unity里面做插值动画的插件有许多,比较常见的有itween.hotween.dotween.根据大家的反馈和实际体验来说,dotween插件在灵活性.稳定性.易用性上都十分突出.这里简单介绍下它的 ...

  9. Unity给力插件之ShaderForge(一)

    这是一个用来制作shader的插件,也是一个很好的学习shader的工具.这个插件上手很容易,但是要用它来制作理想的Shader,需要下点功夫. 这儿先列举出基础知识,以及我的一些实践.以后我还会继续 ...

  10. Unity给力插件之MeshBaker

    这是一个用来合并网格.材质.贴图的插件. 其实网上也有一些比较详细的使用说明,但是真实操作起来时,总是有一些搞不清bug.而且,作为功能比较全的插件,在Unity版本更新时,也难免会一些不兼容的地方. ...

随机推荐

  1. Win10下Anaconda3安装CPU版本TensorFlow并使用Pycharm开发

    环境:windows10 软件:Anaconda3 1.安装Anaconda 选择相应的Anaconda进行安装,下载地址点击这里,下载对应系统版本的Anaconda3. 运行 开始菜单->An ...

  2. artdialog自定义多个按钮

    在实际运用到的过程中artdialog弹出框下面的按钮不止一个 可以自己定义多个按钮 function view_show(cust_id){$.dialog({        id: 'view_c ...

  3. 8:django sessions(会话)

    django会话 django提供对匿名会话全方位的支持,会话框架可以存储和检索每个站点访问者的任意数据.会话数据是存储在服务器端的,并且简要了发送和接受cookie的过程,cookies只包含一个s ...

  4. Linux网络属性配置命令和管理详解

    一.Linux网络属性配置 1.Linux主机接入到网络方式 IP/NETMASK:实现本地网络通信 路由(网关):可以进行跨网络通信 DNS服务器地址:基于主机名的通信,Linux可以有三个DNS地 ...

  5. window.screen.height和window.screen.availHeight和document.body.clientHeight和document.documentElement.clientHeight

    说这几个属性前 我说一下我的设备 我的设备有两个,一个高度为1080的显示器,一个高度为800的电脑 第一种:window.screen.height 这个方法是获取用户电脑屏幕的高度,是不关浏览器或 ...

  6. CentOS7.5安装截图软件

    一.Screenshot tool插件 这个插件直接在https://extensions.gnome.org/搜索,然后打开ON,等待安装完毕,就可以在你桌面的顶栏的右侧看到一个相机一样的小东西 缺 ...

  7. macos不能打开windows samba共享问题(转载)

    转自:https://www.macx.cn/thread-2095377-1-1.html?mod=viewthread&tid=2095377&extra=page%253D1&a ...

  8. Mac OS X系统下的Android环境变量配置

    在Mac下开发Android,要想在终端利用命令行使用adb/android等命令时,需要配置一下环境变量. 步骤: 1.首先,假设你已经下载了Android SDK,解压后安装了adb.记住sdk文 ...

  9. Windows+QT+Eclipse+MinGW搭建QT开发环境详细教程

     Windows+QT+Eclipse+MinGW搭建QT开发环境详细教程 一.准备工具: QT-SDK for Windows:http://get.qt.nokia.com/qtsdk/qt-sd ...

  10. 《深入理解Android2》读书笔记(八)

    接上篇<深入理解Android2>读书笔记(七) AMS中的进程管理 AMS对进程的管理仅涉及两个方面 1.调节进程的调度优先级和调度策略 2.调节进程的oom值 调度优先级和调度策略 1 ...