如何使用unity easytouch5教程 unity点击怪物

扫一扫,访问微社区
后使用快捷导航没有帐号?
签到成功!您今天第{todayrank}个签到,签到排名竞争激烈,记得每天都来签到哦!已连续签到:{constant}天,累计签到:{days}天
当前位置: &
_____________________________________________________________________________________________________________
问答求助版块规则:
  1、问题尽量描述清楚
& && &2、代码要放在代码块里
& && &3、附件最好放到云盘,然后把链接放到TXT文档里,上传TXT文档。【最好没有附件,你懂得】
& && &4、本版块回复不得无意义,如:顶、呵呵、不错......以及擦边!【真的会扣分的哦】严重者,封IP!
& && &5、问题得到解决,请选择最佳答案。
& && &6、若问题是你自己解决了,可以联系管理员,返还蛮牛币,写下你的答案,另有蛮牛币奖赏。
_____________________________________________________________________________________________________________
查看: 350|回复: 5
[Easy Touch]关于easytouch中侦测划动手势的问题。
本帖为抢楼帖,欢迎抢楼!&
146/50排名<font color="#FF昨日变化21主题帖子积分
注册看看, 积分 46, 距离下一级还需 4 积分
注册看看, 积分 46, 距离下一级还需 4 积分
在线时间29 小时
本帖最后由 loliconest 于
06:10 编辑
大神们好!
我正在制作一款三消游戏,目前在用easytouch插件作为游戏中侦测手势活动。
在我用private void On_SimpleTap( Gesture gesture)的时候,我的每一个图案都能检测到点击活动
但是我用EasyTouch.On_SwipeStart 以及 EasyTouch.On_SwipeEn 时,图案不能没有回馈手势划动
[C#] 纯文本查看 复制代码private void On_SwipeStart(Gesture gesture)
if (gesture.pickObject == gameObject)
isSelect =
private void On_SwipeEnd(Gesture gesture)
if (isSelect == true)
if(gesture.swipe.ToString() == &Right&) //Right
gameObject.GetComponent&CubeScript&().Swipe = 'r';
gameObject.GetComponent&CubeScript&().Swiped = 1;
else if(gesture.swipe.ToString() == &Left&) //Left
gameObject.GetComponent&CubeScript&().Swipe = 'l';
gameObject.GetComponent&CubeScript&().Swiped = 1;
else if(gesture.swipe.ToString() == &Up&) //Up
gameObject.GetComponent&CubeScript&().Swipe = 'u';
gameObject.GetComponent&CubeScript&().Swiped = 1;
else if(gesture.swipe.ToString() == &Down&) //Down
gameObject.GetComponent&CubeScript&().Swipe = 'd';
gameObject.GetComponent&CubeScript&().Swiped = 1;
上面是我的一部分代码,我大概想要的效果就是在划动开始时,检测是不是划动的指定图案。然后当boolean变为true之后,在划动结束的时候,把划动方向传回游戏,并且改变其他class中的变量
每日推荐:
4373/500排名<font color="#FF昨日变化4主题帖子积分
四处流浪, 积分 373, 距离下一级还需 127 积分
四处流浪, 积分 373, 距离下一级还需 127 积分
在线时间133 小时
1.触摸事件只响应NGUI部分,不响应3D部分。
2.触摸事件只响应3D部分,不响应NGUI部分。
3.触摸事件同时响应。
举个例子,在战斗场景我们希望通过手指滑动来控制摄像机的旋转。但是这时屏幕上可能还有一些UI的按钮,但是我们不希望用户点击UI按钮也影响到了摄像机的旋转。所以此时我们只希望触摸事件在3D部分响应。
1. 如下图所示,这里我增加了一个UISprite,我希望我的手指触摸事件只在UI上响应,不在3D上响应
NGUI研究院之与EasyTouch结合使用(十五) - 雨松MOMO程序研究院 - 1
using UnityE
using System.C
public class UImomo : MonoBehaviour {
& & & & //头像
& & & & GameO
& & & & void Start ()
& & & & & & & & icon = transform.Find(&icon&).gameO
& & & & & & & & //添加一个手指滑动的事件。
& & & & & & & & EasyTouch.On_SwipeEnd += EasyTouch_On_SwipeE
& & & & void OnDestroy()
& & & & & & & & //施放一个手指滑动的事件。
& & & & & & & & EasyTouch.On_SwipeEnd -= EasyTouch_On_SwipeE
& & & & //当手指滑动结束时在这里
& & & & void EasyTouch_On_SwipeEnd(Gesture gesture)
& & & & & & & & //判断手指是否触摸在NGUI的头像中
& & & & & & & & if(gesture.IsStartInRect(NGUIObjectToRect(icon)))
& & & & & & & & {
& & & & & & & & & & & & //输出手指滑动的方向
& & & & & & & & & & & & Debug.Log(gesture.swipe);
& & & & & & & & }
& & & & //计算出NGUI某个UISprite或者UITexture或者 UILabel 在屏幕中占的矩形位置。
& & & & private&&Rect NGUIObjectToRect(GameObject go)
& & & & & & & & Camera camera = NGUITools.FindCameraForLayer(go.layer);
& & & & & & & & Bounds bounds = NGUIMath.CalculateAbsoluteWidgetBounds(go.transform);
& & & & & & & & Vector3 min = camera.WorldToScreenPoint(bounds.min);
& & & & & & & & Vector3 max = camera.WorldToScreenPoint(bounds.max);
& & & & & & & & return new Rect(min.x, min.y, max.x - min.x, max.y - min.y);
2.我希望手指触摸只响应3D,不响应NGUI 。这里其实更多的运用于游戏的战斗界面,战斗界面的UI一般都集中在屏幕的四个角, 比如头像 小地图 技能 摇杆等等。EasyTouch提供了NGUI模式,可以很方便的解决这个问题,不过它原理也是用射线来判断,所以你要确保需要略过的UI空间有BoxCollider组件。
我们把所有NGUI做的界面放在UI层上面。代码简单的改改,这样EasyTouch就不会在UI层上响应了。
& & & & void Start ()
& & & & & & & & icon = transform.Find(&icon&).gameO
& & & & & & & & //添加一个手指滑动的事件。
& & & & & & & & EasyTouch.On_SwipeEnd += EasyTouch_On_SwipeE
& & & & & & & & //得到UI摄像机
& & & & & & & & Camera uiCamera = GameObject.Find(&UI Root/Camera&).GetComponent&Camera&();
& & & & & & & & if(uiCamera != null)
& & & & & & & & {
& & & & & & & & & & & & //启动NGUI模式
& & & & & & & & & & & & EasyTouch.instance.enabledNGuiMode =
& & & & & & & & & & & & //把NGUI摄像机加入过滤队列
& & & & & & & & & & & & if(!EasyTouch.instance.nGUICameras.Contains(uiCamera))
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & EasyTouch.instance.nGUICameras.Add(uiCamera);
& & & & & & & & & & & & }
& & & & & & & & & & & & //设置需要过滤的UI层
& & & & & & & & & & & & EasyTouch.instance.nGUILayers = (1 && LayerMask.NameToLayer(&UI&));
& & & & & & & & }
& & & & void OnDestroy()
& & & & & & & & //施放一个手指滑动的事件。
& & & & & & & & EasyTouch.On_SwipeEnd -= EasyTouch_On_SwipeE
& & & & & & & & //施放
& & & & & & & & EasyTouch.instance.enabledNGuiMode =
& & & & & & & & EasyTouch.instance.nGUILayers =0;
& & & & & & & & EasyTouch.instance.nGUICameras.Clear();
每日推荐:
2133/150排名<font color="#FF昨日变化41主题帖子积分
初来乍到, 积分 133, 距离下一级还需 17 积分
初来乍到, 积分 133, 距离下一级还需 17 积分
在线时间72 小时
可以使用FingerGestures,支持的手势更多
每日推荐:
146/50排名<font color="#FF昨日变化21主题帖子积分
注册看看, 积分 46, 距离下一级还需 4 积分
注册看看, 积分 46, 距离下一级还需 4 积分
在线时间29 小时
1.触摸事件只响应NGUI部分,不响应3D部分。
2.触摸事件只响应3D部分,不响应NGUI部分。
感谢大神回复。但是我目前的问题是,虽然我的3d部分有另外分层,我仍然需要同一层内的不同物体能区分哪个被划动了,哪个没有被划动。并且我不想让物体随触点进行拖拽移动。
大体意思就是说,划动起始点是物体本身,但是划动终点不一定也在物体内。然后我想让物体通过划动起始点位置来判断其是否被划动。
如果举一个具体例子的话
比如说我的场景中有一个立方体。我想在起始点是立方体上,但是划动手势的终点不一定在立方体上。用easyTouch来辨别划动方向,然后把这个方向变量传回给立方体。并让立方体做出相应回馈。比如说我向上划,立方体也可以向上转。但是我希望的是只有立方体所占的区域能接受这个划动手势。立方体以外的其它区域都不会有反馈。
每日推荐:
146/50排名<font color="#FF昨日变化21主题帖子积分
注册看看, 积分 46, 距离下一级还需 4 积分
注册看看, 积分 46, 距离下一级还需 4 积分
在线时间29 小时
可以使用FingerGestures,支持的手势更多
谢谢大神帮助!我会看看的!
每日推荐:
146/50排名<font color="#FF昨日变化21主题帖子积分
注册看看, 积分 46, 距离下一级还需 4 积分
注册看看, 积分 46, 距离下一级还需 4 积分
在线时间29 小时
自己解决了。。。在需要划动操作的物体上添加了一个不可见的可拖动物体。靠拖动来传回划动方向。。。
[]: 一个袋子砸在了 loliconest 头上,loliconest 赚了 1
每日推荐:EasyTouch 3.0 + FingerGesture unity3d插件
08:28:36&&&由
modxz上传 &&&评论: 点击:
中文名称:EasyTouch 3.0 + FingerGesture
外文名称:EasyTouch 3.0 + FingerGesture
文件类型:Unity3D插件
文件大小:11M
浏览次数: (今日:,本周:,本月:)
最新更新: 08:34:11
相关热词搜索:
下载地址:(网盘能用的只有百度网盘可以使用,其它网盘不能下载的请留言,我们会把数据转回本地地址。如果是本地地址,均可下载。请勿使用迅雷下载)
FingerGesture轻松检测输入的手势,如点选,拖曳,滑动,长按等!
新!重写速度和易用性
新!自定义手势识别+编辑器
新!内置对象编辑
新!支持基于消息的事件
新!支持Retina显示屏
完整的C#源代码和一个工具箱,辅助脚本能让你迅速上手!iOS和Android支持。
EasyTouch 3.0允许您快速,轻松地开发基于触摸屏,操纵杆和按钮的操作。
*所有主要的手势同时确认
*自动对象选择和多层
*第二个手指模拟
为移动平台开发从未如此简单
(Unity3d道路河流建模软...
Edy’s Vehicle Physi...
UniStorm 1.6|Unity3d天...
Unity3D Character Sy...
Unity3D FPS Kit 2.0...
Unity3D Effects Pack...
Color3 Advanced Colo...
Unity3d自动纹理贴图生成...
Unity3d插件月排行
Unity3d插件总排行
本周邪恶内涵...
本周内涵囧图欣赏
周末动态趣图...
2014日本AV女...
好莱坞艳照门...
好莱坞20大烧...
Hold住了!宅...
本周内涵囧图...
2016年日本AV...
日本女优最怕...
欢迎大家到本站下载喜欢的三维模型,有问题可联系3D模型下载网管理员: 请把#换成@
3D模型下载网所有内容均来自会员上传,使用网站内容时请遵循相关法律法规。如果版权拥有者发现自己作品被侵权,请及时向3D模型下载网提出书面权利通知。3D模型下载网将会依法尽快移除相关涉嫌侵权的内容。您的位置: &
& unity EasyTouch虚拟摇杆的使用(中心按钮移动到边界时的处理
EasyTouch3.1.6 下载 :
EasyTouch 的用法暂时就不描述了,在这里新增一个小功能;
我们在使用EasyTouch过程中会遇到这样这样一个问题:当摇杆中心按钮移动到边界时需要整体随触摸点移动(功夫熊猫的虚拟摇杆),这个需要怎么实现呢?
在EasyTouch3.1.6版本中显然没有现成的方法,为实现所需的功能我们需要修改一下EasyJoystick 类中的On_TouchDown方法;
// Joystick move
void On_TouchDown(Gesture gesture){
if (!visible)
if ((!gesture.isHoverReservedArea && dynamicJoystick) || !dynamicJoystick){
if (isActivated){
Vector2 center = new Vector2( (anchorPosition.x+joystickCenter.x) * VirtualScreen.xRatio , (VirtualScreen.height-(anchorPosition.y +joystickCenter.y)) * VirtualScreen.yRatio);
if (gesture.fingerIndex == joystickIndex){
if (((gesture.position - center).sqrMagnitude & (zoneRadius *VirtualScreen.xRatio )*(zoneRadius *VirtualScreen.xRatio) && resetFingerExit) || !resetFingerExit) {
joystickTouch
= new Vector2( gesture.position.x , gesture.position.y) -
joystickTouch = new Vector2( joystickTouch.x / VirtualScreen.xRatio, joystickTouch.y / VirtualScreen.yRatio);
if (!enableXaxis){
joystickTouch.x =0;
if (!enableYaxis){
joystickTouch.y=0;
if ((joystickTouch/(zoneRadius-touchSizeCoef)).sqrMagnitude & 1){
joystickTouch.Normalize();
joystickTouch *= zoneRadius-touchSizeC
On_TouchUp( gesture);
修改过后的方法: public static bool isAreaMove =
void On_TouchDown(Gesture gesture){
if (!visible)
if ((!gesture.isHoverReservedArea && dynamicJoystick) || !dynamicJoystick){
if (isActivated){
Vector2 center = new Vector2( (anchorPosition.x+joystickCenter.x) * VirtualScreen.xRatio , (VirtualScreen.height-(anchorPosition.y +joystickCenter.y)) * VirtualScreen.yRatio);
if (gesture.fingerIndex == joystickIndex){
if (((gesture.position - center).sqrMagnitude & (zoneRadius *VirtualScreen.xRatio )*(zoneRadius *VirtualScreen.xRatio) && resetFingerExit) || !resetFingerExit) {
joystickTouch
= new Vector2( gesture.position.x , gesture.position.y) -
joystickTouch = new Vector2( joystickTouch.x / VirtualScreen.xRatio, joystickTouch.y / VirtualScreen.yRatio);
if (!enableXaxis){
joystickTouch.x =0;
if (!enableYaxis){
joystickTouch.y=0;
if ((joystickTouch/(zoneRadius-touchSizeCoef)).sqrMagnitude & 1){
joystickTouch.Normalize();
joystickTouch *= zoneRadius-touchSizeC
// changed
if(isAreaMove)
Vector2 gesPos =new Vector2(gesture.position.x/VirtualScreen.xRatio, VirtualScreen.height - gesture.position.y/VirtualScreen.yRatio);
Vector2 offset = gesPos - joystickC
joystickCenter += offset.normalized * (offset.magnitude - joystickTouch.magnitude);
areaRect = new Rect(anchorPosition.x + joystickCenter.x -zoneRadius , anchorPosition.y+joystickCenter.y-zoneRadius,zoneRadius*2,zoneRadius*2);
deadRect = new Rect(anchorPosition.x +
joystickCenter.x -deadZone,anchorPosition.y + joystickCenter.y-deadZone,deadZone*2,deadZone*2);
On_TouchUp( gesture);
添加了一个全局变量isAreaMove;为false时与原方法同效果,true时当中心按钮达到边界继续向外移动时整体会随着触摸点移动;
版权声明:本文为博主原创文章,未经博主允许不得转载。
15小时前74阅15小时前79阅15小时前57阅15小时前67阅15小时前65阅21小时前146阅1天前138阅1天前147阅2天前88阅2天前158阅
CentOS专题
7791阅7374阅4332阅6380阅1274阅5517阅3443阅755阅4251阅8133阅
5ibc.net旗下博客站精品博文小部分原创、大部分从互联网收集整理。尊重作者版权、传播精品博文,让更多编程爱好者知晓!
按 Ctrl+D 键,
把本文加入收藏夹
热门栏目 &
热门教程 &
图书推荐 &
12345678910
12345678910
12345678910Unity之一天一个技术点(9)-EasyTouch 旋转镜头 - 移动开发当前位置:& &&&Unity之一天一个技术点(9)-EasyTouch 旋转镜头Unity之一天一个技术点(9)-EasyTouch 旋转镜头&&网友分享于:&&浏览:0次Unity之一天一个技术点(九)---EasyTouch 旋转镜头
EasyTouch&旋转镜头
从EasyTouch的官方例子上看,它的左摇杆 并不是控制整体的旋转镜头,而且左摇杆控制上下旋转,右摇杆控制左右旋转,十分不方便。
假如只用一个摇杆实现上下左右旋转镜头的时候,自身的坐标系就会歪,也就是会出现镜头歪的情况
在我经过多次测试之后,发现只要在上层创建一个父物体,参数不同,就不会出现镜头歪的情况。如图
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 1234567891011 Copyright & &&版权所有Unity之一天一个技术点(九)---EasyTouch 旋转镜头
时间: 13:12:21
&&&& 阅读:821
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&
EasyTouch&旋转镜头
从EasyTouch的官方例子上看,它的左摇杆 并不是控制整体的旋转镜头,而且左摇杆控制上下旋转,右摇杆控制左右旋转,十分不方便。
假如只用一个摇杆实现上下左右旋转镜头的时候,自身的坐标系就会歪,也就是会出现镜头歪的情况
在我经过多次测试之后,发现只要在上层创建一个父物体,参数不同,就不会出现镜头歪的情况。如图
标签:&&&&&&&&&原文:http://blog.csdn.net/myk7694503/article/details/
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!}

我要回帖

更多关于 easytouch unity 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信