Unity3d插件研究之Easytouch

但我们开发移动端的游戏时,发现使用Input.GetMouseButtonDown的方法不可用,怎么办?

虽然unity3d也有自带触屏的方法,但是使用起来代价太高,什么单击,双击这些功能都要自己封装。

下面我们来讲下EasyTouch这个插件,它将所有触屏的手势,都已经写好了。

而且Easytouch也支持NGUI,使用起来十分的方便。

接下来,我们详细地学习这个插件改如何运用到我们的项目中来。

首先,我们导入easytouch插件,这里我是用3.0版本的,可能有些老了,我都没更新,但是大致的功能实际上是完全可以胜任了。

创建easytouch的步骤:

1.这里我使用的c#的脚本,js我不太熟悉。

2.完了之后你们会看到在scene中会出现EasyTouch。

3.新建一个c#脚本,来实现简单的触屏逻辑,这里注意一下,easytouch支持在editor下面进行测试,不用再发送到真机上。这也大大简化了开发者的工作。所以个人强烈推荐这个插件。

我们取名为TouchTest,

using UnityEngine;
using System.Collections;

public class TouchTest : MonoBehaviour {

	// Subscribe to events
	void OnEnable(){
		EasyTouch.On_TouchStart += On_MyTouchStart;//启动On_TouchStart监听,也就是手指接触屏幕,就会触发On_MyTouchStart的方法执行
	}
	// Unsubscribe
	void OnDisable(){
		EasyTouch.On_TouchStart -= On_MyTouchStart;//去除监听
	}
	// Unsubscribe
	void OnDestroy(){
		EasyTouch.On_TouchStart -= On_MyTouchStart;//去除监听
	}
	// Touch start event
	public void On_MyTouchStart(Gesture gesture){
		Debug.Log( "Touch in " + gesture.position);//打印触摸到屏幕的坐标Vector2
	}
}

 写好代码之后,我们新建一个GameObject,然后把脚本赋值给这个物体。

启动demo,观察效果。

大致步骤就是如此,我们发现我们只是测试一个On_TouchStart,在easytouch的API中封装了好多手势的方法:

On_Cancel( Gesture gesture)
Occurs when The system cancelled tracking for the touch, as when (for example) the user puts the device to her face.
On_Cancel2Fingers( Gesture gesture)
Occurs when the touch count is no longer egal to 2 and different to 0, after the begining of a two fingers gesture.
On_TouchStart( Gesture gesture)
Occurs when a finger touched the screen.
On_TouchDown( Gesture gesture)
Occurs as the touch is active.
On_TouchUp( Gesture gesture)
Occurs when a finger was lifted from the screen.
On_SimpleTap( Gesture gesture)
Occurs when a finger was lifted from the screen, and the time elapsed since the beginning of the touch is less than
the time required for the detection of a long tap.
On_DoubleTap( Gesture gesture)
Occurs when the number of taps is egal to 2 in a short time.
On_LongTapStart( Gesture gesture)
Occurs when a finger is touching the screen, but hasn’t moved since the time required for the detection of a long tap.
On_LongTap( Gesture gesture)
Occurs as the touch is active after a LongTapStart
On_LongTapEnd( Gesture gesture)
Occurs when a finger was lifted from the screen, and the time elapsed since the beginning of the touch is more than
the time required for the detection of a long tap.
On_DragStart( Gesture gesture)
Occurs when a drag start. A drag is a swipe on a pickable object
On_Drag( Gesture gesture)
Occurs as the drag is active.
On_DragEnd( Gesture gesture)
Occurs when a finger that raise the drag event , is lifted from the screen.
On_SwipeStart( Gesture gesture)
Occurs when swipe start.
On_Swipe( Gesture gesture)
Occurs as the swipe is active.
On_SwipeEnd( Gesture gesture)
Occurs when a finger that raise the swipe event , is lifted from the screen.
On_TouchStart2Fingers( Gesture gesture)
Like On_TouchStart but for a 2 fingers gesture.
On_TouchDown2Fingers( Gesture gesture)
Like On_TouchDown but for a 2 fingers gesture.
On_TouchUp2Fingers( Gesture gesture)
Like On_TouchUp but for a 2 fingers gesture.
On_SimpleTap2Fingers( Gesture gesture)
Like On_SimpleTap but for a 2 fingers gesture.
On_DoubleTap2Fingers( Gesture gesture)
Like On_DoubleTap but for a 2 fingers gesture.
On_LongTapStart2Fingers( Gesture gesture)
Like On_LongTapStart but for a 2 fingers gesture.
On_LongTap2Fingers( Gesture gesture)
Like On_LongTap but for a 2 fingers gesture.
On_LongTapEnd2Fingers( Gesture gesture)
Like On_LongTapEnd but for a 2 fingers gesture.
On_Twist( Gesture gesture)
Occurs when a twist gesture start
On_TwistEnd( Gesture gesture)
Occurs as the twist gesture is active.
On_PinchIn( Gesture gesture)
Occurs as the twist in gesture is active.
On_PinchOut( Gesture gesture)
Occurs as the pinch out gesture is active.
On_PinchEnd( Gesture gesture)
Occurs when the 2 fingers that raise the pinch event , are lifted from the screen.
On_DragStart2Fingers( Gesture gesture)
Like On_DragStart but for a 2 fingers gesture.
On_Drag2Fingers( Gesture gesture)
Like On_Drag but for a 2 fingers gesture.
On_DragEnd2Fingers( Gesture gesture)
Like On_DragEnd2Fingers but for a 2 fingers gesture.
On_SwipeStart2Fingers( Gesture gesture)
Like On_SwipeStart but for a 2 fingers gesture.
On_Swipe2Fingers( Gesture gesture)
Like On_Swipe but for a 2 fingers gesture.
On_SwipeEnd2Fingers( Gesture gesture)
Like On_SwipeEnd but for a 2 fingers gesture.

这里我就不一一测试了,有兴趣的童鞋可以去官方的demo看看。

接着我们来看看easytouch的属性表:

Enable EasyTouch------->是否启用easytouch,否则所有的触屏效果消失。

Enable unity remote-------->是否启用Unity Remote,这个是啥东西呢,他是Unity开发移动游戏的辅助工具,就是在你的手机上安装这个app或apk,然后通过

数据线连接到你的电脑上,当你的unity要build 发布的时候,他就会自动在你的手机上测试,不用再build完之后发到手机上,再打开测试。

就是这个小东东:

Broadcast Messages-------------------->是否启动Unity里面的SendMessage的机制,不熟悉这个的童鞋自己研究,其实也蛮好理解的。

就是向同级发送消息,在这个游戏物体上的所有MonoBehaviour上调用名称为methodName的方法,比如在Test1.cs脚本里面,我们有一个方法:

getMessage(string str)
{
  print("receive message:"+str);//打印收到的消息
}

  然后在Test2.cs里面,我们调用

string s = "send message";
SendMessage("getMessage",s);

  运行就会收到消息。

好了我们回到easytouch,再看看参数

Ohter Receiver------------------>赋值一个object,允许你直接把消息发送到这个object上。

Joysticks & buttons--------------->是否启动Joysticks(虚拟遥控)(这个我们的以后再研究 )& buttons(按钮)

时间: 2025-01-01 09:40:05

Unity3d插件研究之Easytouch的相关文章

Unity3d插件SmoothMoves加载速度优化

我们游戏是使用Unity3d做的2D游戏,角色特效等都使用SmoothMoves来制作(在国内估计也算奇葩一朵吧,据说燃烧的蔬菜也是SmoothMoves作的),游戏中的所有的资源--角色.特效.技能ICON.角色ICON.音效等几乎都使用assetbundles来实现. 问题:加载一场战斗的时间大概要30s左右!!! 解决方案关键字:依赖打包.数据块共享.冗余数据剔除 优化后:5s左右 :) 1. 依赖打包 1.1 使用AssetDatabase.GetDependencies()接口可以查看

unity3d插件Daikon Forge GUI 中文教程-2-基础控件Label的使用

(游戏蛮牛首发)大家好我是孙广东.官网提供了专业的视频教程http://www.daikonforge.com/dfgui/tutorials/,不过是在youtube上,要观看是需要翻墙的. 不过教程还是文本更好一些,便于观看查找. 我们先来设置 UI Root 中的如下:屏幕大小为1024*768 2.1  新建一个Label 控件 先来看看Control Properties (基本上是所有控件都共用的)的以后不再介绍,参数: 其中要设置好Layout 和 Anchor 我们就要完全的理解

Unity插件研究-EasyTouch V5

抽空研究了下Easy Touch 5插件,发现确实很好用,下面是相应的用法: 1. Easy Touch Controls:实现虚拟摇杆的组件 在项目的"Hierarchy"窗口下,创建摇杆操作点击GameObject=>EasyTouchControls=>Joystick,创建完之后会在Hierarchy面板出现摇杆物体,Game视图也会出现一个摇杆,这个插件应该是基于UGUI写的,它的物体出现方式和创建Canvas下的控件一样(所以自定义事件和UGUI添加事件的方法基

2Unity3D教程宝典之插件篇:Unity3D插件详细评测及教学下载

转载自风宇冲Unity3D教程学院 http://blog.sina.com.cn/s/blog_471132920101crh3.html 引言:想用Unity3D制作优秀的游戏,插件是必不可少的.工欲善其事必先利其器.本文主旨是告诉使用Unity3D引擎的同学们如何根据需求选择适当的工具.为此我写了插件的经验及理论讲解,涉及插件的 学习/辨别/选择/配合.也写了插件的 评测/教程/下载.关于评测,带有一定的主观性,仅供参考.关于教程,热门插件网上已经有很多教程了,本文提供链接,网上资料少的插

[插件] Unity3D插件PlayMaker 1.7.7.2

资源名称: PlayMaker 资源版本: 1.7.7.2 资源类型: .unitypackage 资源大小: 3.37MB 更新时间: 2014-05-27 支持正版: ↓↓↓↓↓↓插件仅用于学习,禁止商用,为了维护您的个人权益,请支持正版↓↓↓↓↓↓ 官网地址: https://www.assetstore.unity3d.com/en/#!/content/368 资源图片: 链接:http://j.gs/926397/unity3dplaymaker-1772 密码:71uf

[Unity3D插件系列]-A* Pathfinding Project 学习(一)

一直想在Demo中使用Unity3D自带的寻路模块,但是遇到一些问题: 需求中要求游戏中的对象可以寻路的同时,成为其他对象的障碍,我就在同一个对象上添加了NavMeshAgent和NavMeshObstacle,但是出现了对象乱动的异常情况,查了官方文档还有论坛,没有对这种同时添加并起作用的情况有明确的解决方案:这时只能求助于其他寻路插件了,A* Pathfinding Project看起来还不错,考虑学习下. 1. 场景准备 先建立一个scene 添加一个plane,让其坐标处于(0,0,0)

浏览器插件研究

很早就想开发浏览器插件,像谷歌浏览器插件太丰富,但要熟悉javesript,go语言. 一般的Web应用对于浏览器插件能不使用的建议尽量不使用,因为其涉及到安全问题以及影响用户安装(或自动下载注册安装)体验问题.在有特殊需求(如涉及数据安全的金融业务数据交互.需插件才能实现的与本地设备的交互等)的情况下可以酌情慎用. 浏览器插件总体可以划分为两大阵营,即IE支持的插件以及非IE支持的插件.本来在Netscape时代,对于浏览器插件是有公用的规范的(NPAPI),一开始所有浏览器都支持该规范,包括

【Unity3D插件】在Unity中读写文件数据:LitJSON快速教程

今天有幸被召回母校给即将毕业的学弟学妹们讲我这两年的工作史,看了下母校没啥特别的变化,就是寝室都安了空调,学妹们都非常漂亮而已..好了不扯蛋了,说下今天的主题吧.这些天我在深度定制语法高亮功能的同时发现了博客园提供的一些有意思的函数,甚至有几个博客园都没用到,我也不知道怎么才能触发那些功能..打开这个js就可以看到很多好用的东西了,虽然写的不怎么样,但是至少有这些功能. ps: 推荐安装一个代码格式化的插件,否则一坨看着蛋疼.比如第一个就是 log,方便调试. http://www.qidian

Unity3D插件之TextMeshPro字体资源的制作

由于TextMeshPro的字体资源后缀是.asset,所以,需要我们借助插件的字体工具TextMeshPro-Font Asset Creator来生成新的字体资源.该工具打开路径:Window-Font Asset Creator.具体操作可见TextMeshPro/User Guide/TextMesh Pro User Guide.pdf这个文档,有详细介绍. 由于用到了中文字体,所以需要修改插件的源码.本篇博客还提供了常用的3500个字体的txt文档,下载链接: 制作字体的具体步骤如下