touch unity3d_unity3d touch - CSDN
  • LeanTouch是一款免费的unity触屏插件,在unity的商城里可以免费下载到。使用起来很简单也很方便。 先导入项目 ...然后插入插件,可以直接...3D对象的话需要有collider组件。 里面提供了大量示例,代码很简单。

    LeanTouch是一款免费的unity触屏插件,在unity的商城里可以免费下载到。使用起来很简单也很方便。

    先导入项目



    然后插入插件,可以直接在unity的菜单里面添加,




    把simpledrag这个脚本拖到要拖动到物体上就能实现触摸屏拖动了。3D对象的话需要有collider组件。


    里面提供了大量示例,代码很简单。

    展开全文
  • 虽然unity3d也有自带触屏的方法,但是使用起来代价太高,什么单击,双击这些功能都要自己封装。 下面我们来讲下EasyTouch这个插件,它将所有触屏的手势,都已经写好了。 而且Easytouch也支持NGUI,使用起来...

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

     

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

     

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

     

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

     

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

     

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

     

    创建easytouch的步骤:

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

    2.完了之后你们会看到在scene中会出现EasyTouch的小图标,这样我们就能实现诸多触屏的功能。OK,马上来测试一下。

     

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

    好了,我们巴新建的脚本取名为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,观察效果,我随便在屏幕上点击三下,发现Console打印了这三个坐标。测试完毕。

     

     

    大致步骤就是如此,这里只是仅仅测试一个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完之后把apk发到手机上测试。

    就是这个小东东:

     

    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(按钮)

     Enable NGUI compatibility---------------------->是否兼容NGUI插件,如果启动的话,我们选择NGUI的Camera和NGUI界面所在的Layer层级。注意了,一定要选择好NGUI的Camera和层级。

    可能有读者不明白了,什么叫兼容NGUI?实际就是在NGUI搭建的界面点击,不会触发easytouch的触屏。举个例子,当我们点击button的时候,只触发ngui的button事件,不会触发easytouch的On_TouchStart事件,也就是说easytouch的事件被屏蔽了。

    我们深入的研究一下,其他很简单,也就是在NGUI的Camera摄像机渲染到的且有Collider的GameObject,easytouch的触屏事件都被屏蔽。

     

    Camera-------------------->用于easytouch触屏事件发射Ray碰撞的摄像机。

    Enable auto-select------------->是否启用自动选择物体。

    Pickable Layers------------------>就是设置可以选择物体的层级。

    	// Touch start event
    	public void On_MyTouchStart(Gesture gesture){
    		Debug.Log( "Touch in " + gesture.position);//打印触摸到屏幕的坐标Vector2
    		if (gesture.pickObject == gameObject)//如果选择的物体是脚本上的这个物体的话,就打印他的名字
    		{
    			print(gameObject.name);
    		}
    	}
    

    然后我们新建一个Cube,将脚本赋给它,然后设置Pickable Layers为Cube的Layer,运行点击Cube

     Stationnary tolerance--------------------->静止的距离。这个是什么意思呢?当我们手指接触到屏幕,然后滑动一定的距离,那么这个距离 >= Stationnary tolerance的时候才会触发事件,注意啦,这里的事件就指的是滑动啦,拖动啦这些,单击什么的一律不管。

     

    Long tap time-------------------->这个是长点击所需要的时间,也就是说超过这个时间,长点击的事件才会触发。

     

    Swipe tolerance--------------->这个是滑动的精确度,介于0-1之间,0表示不精确,1表示非常精确。

     

    接下来我来一一讲解各个手势的demo

    转载于:https://www.cnblogs.com/CaomaoUnity3d/p/4617293.html

    展开全文
  • Unity3d手势触摸插件 Fingers - Touch Gestures for Unity 2.5.6
  • 前言 EasyTouch5 官方视频要点记录 环境 Unity_2017.1.0f3 + ...Unity Remote 5 是安卓手机上的一款能帮助unity开发人员即时调试的app,个人感觉挺好用的(但还是忍不住想吐槽一下连接问题 = =!)。 ...

    前言

    EasyTouch5 官方视频要点记录
    

    环境

    Unity_2017.1.0f3 + EasyTouch5 + Unity Remote 5(手机app)
    首先是配置好环境,值得提的几点:
    
    Unity Remote 5
    Unity Remote 5 是安卓手机上的一款能帮助unity开发人员即时调试的app,个人感觉挺好用的(但还是忍不住想吐槽一下连接问题 = =!)。

    正文

    EasyTouch各个Component组件

    添加方式:点击Add Component -> Easy Touch -> 对应组件便可添加组件

    • Quick Touch
      新建一个Cube,然后添加此组件,跟UGUI的事件回调一样类似,在On Touch(Gesture)下面添加事件,即可在事件发生时调用相应的函数。值得一提的是,Action trggering有start, down,up三个选项,分别对应按下时(一次),按下中(可多次),抬起时(一次)回调。

    • Quick Drag
      新建两个Cube,分别添加此组件,这两个组件便都可以在Game视窗中拖拽。同时此组件也支持多点操作,借助Unity Remote 5 我们可以使用两个手指同时拖拽两个Cube。回调事件同上。

    • Quick Pinch
      新建一个Cube,添加此组件,勾选Enable simple action,Action选Scale, Affect axes选xyz,就可以实现双指捏动控制Cube的Scale大小。

      视频里就讲了这些,其他组件后面研究研究在补上

    EasyTouch方法使用

    EasyTouch内部封装了很多方法和属性,使得我们不用实现事件接口,而直接调用对应事件,比如下面:

    void Update ()
    {
            Gesture gesture = EasyTouch.current;
            if (gesture.type == EasyTouch.EvtType.On_TouchStart && gesture.pickedObject == gameObject)
            {
                DoSomething();
            }
    }

    JoyStick摇杆

    • 创建:Hierarchy视图下右键-> EasyTouch Controls -> Joystick

    • position&size :设定调摇杆的位置大小

      Axes properties :设定摇杆拉动的行为
    示例:Horizontal -> Direction action -> Direct action to 关联一个方块,运行场景,横向拉动摇杆,即可控制方块Y轴方向的旋转(默认)。
    如果游戏物体是动态创建的,要关联引用的话,需要勾选Horizontal -> Direction action -> Auto link to tag,然后我们创建的物体选择对应的tag即可在物体创建的时候关联。值得一提的是,如果Joystick也做成prefab,那么先创建物体,在创建Joystick,也可以成功关联。另外如果创建多个物体,Joystick默认只关联第一个创建的物体。
    Horizontal -> Unity axes 默认选择Horizontal,这样就与Unity的InputManager关联起来了,当按下键盘←→或者AD的时候,可以看到摇杆向左右拉动,效果与鼠标或者屏幕拖动一样。
    Turn& Move direction Action:地牢模式的移动。
    勾选后Horizontal和Vertical方向的设定就不管用啦。
    勾选Lock in jump后,人物在跳跃的时候就不能移动而智能改变方向(jump在后面Button里面有简单介绍)
      Camera :设定Camera跟随
    基础设定:勾选Enable tracking

    Auto link to tag: 勾选后根据设置的tag关联camera,不勾选的话,自己关联。

    Target mode: 根据不同的标准选择Camera跟随的目标

    Link On Tag: 根据tag选择
    User Defined:自己关联物体
    From Direct Action Axis X:根据摇杆横向拖动关联的物体
    From Direct Action Axis Y:根据摇杆纵向拖动关联的物体

    Camera mode:设定摄像机跟随方式

    Follow:只跟随物体位置,不跟随旋转
    Smooth Follow:跟随物体的位置和旋转

    Wall detection:摄像机墙边缘效果,可以根据layer旋转检测的物体(基于碰撞)

    Distance: Camera:相对于物体的距离
    Height: Camera:相对于物体的高度
    Height damping:高度变化时Camera的平滑系数
    Rotation damping:转向时Camera的平滑系数
    Button

    这里只说一下Direction ation 里面的Action,可以选择jump,要求是关联的物体上必须有character Controller,可以模拟人物的跳跃。

    总结

    这篇博客只是对视频要点的记录,后面应用中遇到坑再写后续吧。
    另外,终于开始写博客了!以前都是用OneNote,还是写成博客好一些~

    展开全文
  • Unity 3D——Touch的用法

    2014-08-29 15:28:59
    if (Input.touchCount >= 1) { Touch touch = Input.GetTouch(0); switch (touch.phase) { case TouchPhase.Began:
       if (Input.touchCount >= 1)
           {
               Touch touch = Input.GetTouch(0);
                switch (touch.phase)
                {
                    case TouchPhase.Began:
                         previousTouchPosition = touch.position;
                         isMoving = false;
                         break;
    
                     case TouchPhase.Moved:
                         isMoving = true;
                         deltaMove = touch.position - previousTouchPosition;
                         previousTouchPosition = touch.position;
                         break;
    
                     case TouchPhase.Ended:
                         if (!isMoving)
                          {
                          }
                          isMoving = false;
                         break;
                  }
            }

    展开全文
  • 一些大型游戏,特别是同屏多人的情况下,如果采用unity3d自带的Collider组件来触发3D模型的点击响应,其实是有一定消耗的。为了减少消耗, 提高性能特意开发出tiny touch这一插件来提高项目的性能。Tiny touch 使用...
  •  为了更好地理解游戏的软件架构和对象模型,它获得更好的外观仅有一名Unity3D的游戏引擎和编辑器是非常有用的,它的主要原则。 Unity3D 引擎  Unity3D的是一个屡获殊荣的工具,用于创建交互式3D应用程序在多个...
  • 一、引言 【Unity3D基础2-1】Unity3D从业介绍已更新完毕 这篇介绍Unity3D引擎 二、
  •  Unity3D的是一个屡获殊荣的工具,用于创建交互式3D应用程序在多个platforms.Unity3D由游戏引擎和编辑器。该引擎包含的软件组件,在游戏的研究与开发中最常见的和经常性的任务。发动机所涵盖的主题包括声音,图
  • 所以是将两个部分融合到一起:1,物体的运动;... if (Input.GetMouseButtonDown (0)) { //0在PC上表示鼠标的左键,在手机上表示落下的第一个手指头,以此类推,好像最多支持五个手指头 print("按下");...
  • 今天呢,我们来一起学习在Unity3D中使用EasyTouch虚拟摇杆来控制人物移动。尽管Unity3D内置了一个Joystick组件(其实就是一个GUITexture和一个Js脚本文件啦),可是博主在实际使用的时候发现这个内置的Joystick存在...
  • (1)Touch类介绍 (2)编写Touch管理类 (3)修改摇杆控制 4.资源下载 5.推送 6.结语 1.效果展示 2.博客介绍  手游开发和端游总会有很多的差别,在端游中获取点击的方式我们会选择Input.GetMouseButton...
  • 在刚开始学Unity3D时,笔者使用了Unity3D自带的虚拟摇杆,虽然很容易上手,但它的适配性很不好,尤其在不同的机型上,使用起来效果不是很好。后来使用了EasyTouch3.16插件,发现还挺好用的,并且能在电脑上用鼠标...
  • unity3d 各大插件评测

    2018-01-30 15:00:43
    原创文章如需转载请注明:转载自风宇冲Unity3D教程学院 引言:想用Unity3D制作优秀的游戏,插件是必不可少的。工欲善其事必先利其器。本文主旨是告诉使用Unity3D引擎的同学们如何根据需求选择适当的工具...
  •  Unity3D的是一个屡获殊荣的工具,用于创建交互式3D应用程序在多个platforms.Unity3D由游戏引擎和编辑器。该引擎包含的软件组件,在游戏的研究与开发中最常见的和经常性的任务。发动机所涵盖的主题包括
  • Unity3D手机中Input类touch详解: 1.Input.touchCount 触摸随之增长,一秒50次增量。 2.Input.GetTouch(0).phase==TouchPhase.Moved 手指滑动中最后一帧滑动的状态是运动的。 3.TouchPhase 触摸的几个状态...
  • 体系结构 ... 为了更好地理解游戏的软件架构和对象模型,它获得更好的外观仅有一名Unity3D的游戏引擎和编辑器是非常有用的,它的主要原则。 Unity3D 引擎 Unity3D的是一个屡获殊荣的工具,...
  • Unity3d 资料网站

    2015-05-20 12:16:49
    http://unity3d.com/ Unity 中文官方网: http://unity3d.com/cn 非官方: http://www.unity3d-cn.com/ 0、2014-Unity 发布中文版的手册,所有天朝人都可以享受官方提示的源汁源味的手册内容;...
  • Unity3d手机游戏开发经常用到的插件,easy touch5插件是非常实用的,可以很容易实现手游的虚拟摇杆功能控制游戏人物的走动方向。但此插件在Asset Store中是收费的,大约20美元,在这里我为同学们奉献出来了,记得...
1 2 3 4 5 ... 20
收藏数 2,557
精华内容 1,022
关键字:

touch unity3d