精华内容
下载资源
问答
  • Easy Touch 5.0.18 unity最新版本插件,亲测很好用,需要的赶快下载吧
  • Touch.unitypackage

    2019-05-12 11:28:20
    本资源是Unity触摸操作的小实例,其中包括选择、拖拽移动、旋转、缩放等功能,希望能对您有所帮助。
  • Unity3d手势触摸插件 Fingers - Touch Gestures for Unity 2.9.3
  • Lean Touch+ v2.3.2已经更新:https://download.csdn.net/download/niubitianping/19521764 Unity3D触摸插件Lean Touch+ v2.2.4.unitypackage。
  • Unity3d手势触摸插件 Fingers - Touch Gestures for Unity 2.5.6
  • Unity LeanTouch插件

    2016-08-23 16:53:38
    Unity LeanTouch插件
  • 简述Unity中的Touch类

    千次阅读 2020-11-12 11:29:26
    所幸Unity有自带的触摸类Touch可以解决一部分问题,但他真的很鸡肋(或许 是我不会用,但网上的相关插件是真的多,比如EasyTouch,大家都说它好用,但我去找的时候UnityAssetStore把 他下架了,痛哭)。鸡肋也敌不过...
    **前言:**
    最近在一家公司实习的时候接触面向移动端开发游戏,这时候触摸就是一个不可避免的东西,虽然在导出的时候,写在
    脚本中的Mouse时间也能够触发,但是Unity底层的东西,我也不太明白,所以可能会出一些问题。
    而且这样写能够实现的功能就很少了。所幸Unity有自带的触摸类Touch可以解决一部分问题,但他真的很鸡肋(或许
    是我不会用,但网上的相关插件是真的多,比如EasyTouch,大家都说它好用,但我去找的时候UnityAssetStore把
    他下架了,痛哭)。鸡肋也敌不过简单,而且我只需要一些简单的功能(拖拽移动,放缩,点击,旋转等),所以我
    把官网的API搬运了一下
    

    Input.Touch Untiy触摸类(以下只是其中的一部分)

    1、先来说说Input.TouchCount这是获取当前有几个手指在触摸屏幕(为什么我在网上看了很多说按着他就会自增的文章,这也是我为什么要写这篇文章的原因。我产生过自我怀疑,然后自己的打印了一下确实是几根手指,建议读者也去自己尝试,眼见为实)
    2、Input.touches 会返回一个Touch的对象数组,当前所有的触摸。
    3、Input.multiTouchEnabled 是否允许多指操作,禁止后只会检测第一个触摸
    4、Input.GetTouch(int touchIndex)可以获取一个Touch对象,touchIndex是你手指触摸的顺序
    5、touch.phase 触摸的状态,对应emnu TouchPhase {Began:触摸伊始,Moved:移动,Stationary:触摸静止(长按), Ended:触摸结束, Canceled:触摸取消(系统取消对触摸的追踪)}
    6、touch.fingerId 一个触摸的唯一标识,当你手指触摸屏幕的时候会产生一个touch对象,而这个fingerId是唯一标识一个touch对象的,手指不离开他就不会改变。注(双击的时候fingerId也是不会变得,因为那个时间间隔不会让这个touch对象释放)。
    7、touch.tapCount 一个触摸的点击次数,如上面fingerId所说短时间松手并不会造成touch的消亡,所以他能够检测到点击的次数
    8、touch.position 一个触摸的坐标,对应屏幕坐标。
    9、touch.deltaPosition 没帧的位置增量。

    我用到的就是这些了,没什么技术含量。下面上一个应用实例

        //人物上下移动,旋转(移动端)
        private void YMove() {
            if (Input.touchCount == 1) {
                Vector2 oriPos = new Vector2(0, 0);
                if (Input.GetTouch(0).phase == TouchPhase.Began) {
                    oriPos = Input.GetTouch(0).deltaPosition;
                    //AvatarSys.instance.ajo.Call("CloseViewPage");
                }
    
                if (Input.GetTouch(0).phase == TouchPhase.Moved) {
                    Vector2 move = (Input.GetTouch(0).deltaPosition - oriPos) / 500;
    
                    float top = transform.position.y + transform.localScale.y / 2;
                    float buttom = transform.position.y - transform.localScale.y / 2;
    				/*这里可以加你想要的控制*/
                    transform.Rotate(Vector3.up, -move.x * 100);
                }
    
          
            }
    
        }
    
        //人物放缩
        private void Scale() {
            if (Input.touchCount == 2) {
                Touch touch1 = Input.GetTouch(0);
                Touch touch2 = Input.GetTouch(1);
                float oldDis, newDis;//两点之间的变化距离
    
                if (touch2.phase == TouchPhase.Began) {
                    oldTouch1 = touch1;
                    oldTouch2 = touch2;
                    return;
                }
    
                if (touch1.phase == TouchPhase.Moved || touch2.phase == TouchPhase.Moved) {
                    oldDis = Vector2.Distance(oldTouch1.position, oldTouch2.position);
                    newDis = Vector2.Distance(touch1.position, touch2.position);
    
                    float change = (newDis - oldDis) / 200;
                    Vector3 moveDis = new Vector3(change, change, change);
                    if (transform.localScale.x < 6 && transform.localScale.x > 1) {
                        transform.localScale += moveDis;
    
                    } else if (transform.localScale.x >= 6 && change < 0) {
                        transform.localScale += moveDis;
                    } else if (transform.localScale.x <= 1 && change > 0) {
                        transform.localScale += moveDis;
                    }
                    oldTouch1 = touch1;
                    oldTouch2 = touch2;
    
                }
    
            }
        }
    
        //检测人物碰撞
        public void OnCollisionClick() {
            if (Input.GetMouseButtonDown(0)) {//判断是否是点击事件
                Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                RaycastHit hitInfo;
                if (Physics.Raycast(ray, out hitInfo)) {
                    //如果是一根手指触摸屏幕而且是刚开始触摸屏幕 
                    if (Input.touchCount == 1 && Input.GetTouch(0).phase == TouchPhase.Began) {
                        if (Input.GetTouch(0).tapCount == 1) {//判断点击的次数
                            Debug.Log(hitInfo);
                            //AvatarSys.instance.ajo.Call("HitInfo", hitInfo.transform.gameObject.name);//调用Android
                        }
                    }
    
                }
            }
        }
        
    

    菜鸟一枚,欢迎大牛评论指导补充,谢谢。

    展开全文
  • TouchScript Unity Package

    2018-05-08 11:24:53
    TouchScript Unity Package. Comon and Get it!! TouchScript Unity Package. Comon and Get it!! TouchScript Unity Package. Comon and Get it!!
  • Lean Touch+ v2.3.2。 Lean Touch+ 是普遍应用的 Lean Touch 的扩展,新增大量的新组件和演示场景。这些功能支持快速添加触摸控件至游戏 - 无需任何代码!只需选择需要的组件,自定义设置,在 Android、iOS 和台式机...
  • unity触控系统源码TouchScript ,很不错的一套触控脚本可以用来研究,打开需要unity3d 4.6或以上
  • LeanTouch.unitypackage

    2016-01-27 14:38:25
    这是个免费的Unity3D的触屏插件,可以在Unity的商店里下载到。这个插件很小巧,用起来也方便,而且例子也很详细,非常不错。
  • Unity3d手势触摸插件 Fingers - Touch Gestures for Unity 2.9.3 亲测unity2020可用!
  • unity插件inputtouch 多平台 c# JavaScript 文件大小588k
  • Fingers - Touch Gestures for Unity v2.2.4.unitypackage 支持Unity多平台手势交互,单击,双击,拖拽等,方便开发,简单易用 unity触摸控制系统Fingers - Touch Gestures for Unity 2.2.4 所支持的Unity版本:...
  • 该插件是unity3d中多点触控和手势插件,里面包含许多Demo。
  • Unity 多点触控源码,多点触控插件,TouchScript
  • Touch类 phase共有5个状态,分别是: Began 开始状态 Moved 移动状态 Stationary 不动状态 Ended 结束状态 Canceled 取消状态 手指追踪Demo 步骤如下: 1.新建Sphere,并Reset; 2.添加Trail...

    Touch类

    在这里插入图片描述
    在这里插入图片描述phase共有5个状态,分别是:
    Began 开始状态
    Moved 移动状态
    Stationary 不动状态
    Ended 结束状态
    Canceled 取消状态

    手指追踪Demo

    步骤如下:
    1.新建Sphere,并Reset;
    2.添加Trail Render效果组件
    在这里插入图片描述
    3.为TrailRender组件添加材质。
    在这里插入图片描述
    4.将Sphere设置为预制体
    5.将脚本挂载到摄像机上
    在这里插入图片描述脚本内容为:

    using UnityEngine;
    
    public class HandFollow : MonoBehaviour
    {
        public GameObject effectPrefab;
        private GameObject ball;
    
        void Update()
        {
            if (Input.touchCount > 0)
            {
                Touch mytTouch = Input.GetTouch(0);
                switch (mytTouch.phase)
                {
                    case TouchPhase.Began:
                        ball = Instantiate(effectPrefab,
                            Camera.main.ScreenToWorldPoint(mytTouch.position) + new Vector3(0, 0, 10), Quaternion.identity);
                        break;
                    case TouchPhase.Moved:
                    case TouchPhase.Stationary:
                        if(ball!=null)
                        ball.transform.position = Camera.main.ScreenToWorldPoint(mytTouch.position) + new Vector3(0, 0, 10);
                        break;
                    case TouchPhase.Canceled:
                    case TouchPhase.Ended:
                        Destroy(ball);
                        break;
                }
            }
        }
    }
    
    
    欢迎评论和指正。
    
    展开全文
  • Lean Touch+ is an extension to the popular Lean Touch, adding a massive amount of new components and demo scenes. These allow you to quickly add touch controls to your game ― no code required! Simply...
  • InputTouch.unitypackage

    2020-03-02 11:49:40
    通过手指触屏控制相机。单指控制相机的旋转,双指控制相机的缩放和平移。仅仅是个Demo,有兴趣的小伙伴可以下载看看。欢迎批评指导
  • unityTouch类相关知识

    2020-02-06 14:01:07
    首先:所有Touch类在PC端均不生效 每当一个手指触摸屏幕时,Unity都会为其生成一个Touch对象 Input.touchCount可以获取当前Touch对象的个数 Unity会将当前存在的所有Touch对象放在Input.touches这个数组中 获取Touch...

    首先:所有Touch类在PC端均不生效

    每当一个手指触摸屏幕时,Unity都会为其生成一个Touch对象

    Input.touchCount可以获取当前Touch对象的个数

    Unity会将当前存在的所有Touch对象放在Input.touches这个数组中

    获取Touch对象
    Touch myTouch = Input.touches[0];
    另一种方式获取指定Index的Touch对象:Input.GetTouch(index);

    fingerId是用来识别当前手指的唯一标示
    myTouch.fingerId

    deltaPosition当前位置与上次位置之间的差
    myTouch.deltaPosition

    deltaTime本次记录Touch对象状态与上次记录Touch状态之间的时间差
    myTouch.deltaTime

    Touch对象的生命周期的结束并不是手指离开屏幕后立刻销毁
    如果一根手指在同一位置快速点击,则视作同一Touch对象
    tapCount为Touch对象所对应的手指点击屏幕的次数
    myTouch.tapCount

    phase表示当前手指所对应的Touch对象的阶段(状态)
    myTouch.phase
    当一个手指刚按下时,其对应的Touch对象的Phase是Began
    TouchPhase.Began
    当一个手指在屏幕上移动时,其对应的Touch对象的Phase是Moved
    TouchPhase.Moved
    当一个手指在屏幕上按住不动时,其对应的Touch对象的Phase是Stationary
    TouchPhase.Stationary
    当一个手指离开屏幕时,其对应的Touch对象的Phase是Ended
    TouchPhase.Ended
    当因为某些原因(系统原因)取消对某个手指的追踪时,其对应的Touch对象的Phase是Canceled
    TouchPhase.Canceled

    rawPosition为当前Touch对象所对应的手指的初始(刚按下时)屏幕坐标
    myTouch.rawPosition
    position为当前Touch对象所对应的手指的屏幕坐标
    myTouch.position

    unity打包出来的软件返回键是由该软件接管的而非由安卓接管
    返回键的键码为Escape
    Input.GetKeyDown(KeyCode.Escape)

    该操作可将返回键控制权交回给安卓
    Input.backButtonLeavesApp = true;

    注意:
    以下三行在移动端也生效,带来方便的同时也会带来隐患
    Input.GetMouseButton(0)
    Input.GetAxis(“Mouse X”)
    Input.GetAxis(“Mouse Y”)

    展开全文
  • Touch Stick Controller.unitypackage
  • Lean Touch+
  • UnityTouch类的简单介绍

    千次阅读 2018-04-16 17:37:28
    using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class TouchDemo : MonoBehaviour{ public Text infoText; private string info; private voi...
    using System.Collections;
    
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;


    public class TouchDemo : MonoBehaviour
    {
        public Text infoText;
        private string info;
        private void Update()
        {
            //每当一个手指触摸屏幕时,unity都会围棋生成一个touch对象
            //Input.touchCount 是可以获取当前Touch对象的个数
            if (Input.touchCount > 0)
            {
                info = string.Empty;
                info += "touchCount" + Input.touchCount + "\n";
                //unity会将当前存在的所有Touch对象放在Input.touches数组里面
                //另一种方式获取指定index的Touch对象:Input.GetTouch(index)

                Touch myTouch = Input.touches[0];

                //myTouch.fingerId是用来识别当前手指的唯一表示

                info += "fingerId:" + myTouch.fingerId + "\n";

                //deltaPosition当前位置与上次位置之间的差

                info += "deltaPosition:" + myTouch.deltaPosition + "\n";

                //deltaTime本次记录Touch对象状态与上次记录Touch状态之间的时间差

                info += "deltaTime:" + myTouch.deltaTime + "\n";

                //Touch对象的生命周期的结束并不是手指离开屏幕后立刻销毁
                //如果一根手指在同一位置快速点击,侧视作同一Touch对象
                //tapCount为Touch对象所对应的手指点击屏幕的次数

                info += "tapCount:" + myTouch.tapCount + "\n";

                //phase表示当前手指锁对应的Touch对象阶段(状态)
                //Began 开始状态
                //Moved 移动状态
                //Stationary  不动状态
                //Ended 结束状态
                //Canceled 取消状态
                info += "phase:" + myTouch.phase + "\n";
            }
            infoText.text = info;
        }

    }


    展开全文
  • unity的触摸类touch使用

    千次阅读 2017-09-05 16:03:55
    这篇博文将简单的记录,如何用unity处理在移动设备上的触控操作。  iOS和Android设备能够支持多点触控。在unity中你可以通过Input.touches属性集合访问在最近一帧中触摸在屏幕上的每一根手指的状态数据。简单的触控...
  • Lean Touch 2.1.0 unity相对最新版触摸插件
  • Mobile Touch Camera 2.4.unitypackage
  • Win7Touch.unitypackage

    2022-01-10 09:32:34
    unity插件
  • unity 3D著名插件之一,该插件购买自网上,在此分享,仅供大家学习研究只用。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,115
精华内容 2,446
关键字:

touch类unity