Unity中的Input.Touch,移动端的触摸操作

您所在的位置:网站首页 原神操作方式只有触屏能用吗 Unity中的Input.Touch,移动端的触摸操作

Unity中的Input.Touch,移动端的触摸操作

2024-07-12 00:40| 来源: 网络整理| 查看: 265

    这篇博文将简单的记录,如何用unity处理在移动设备上的触控操作。     iOS和Android设备能够支持多点触控。在unity中你可以通过Input.touches属性集合访问在最近一帧中触摸在屏幕上的每一根手指的状态数据。简单的触控响应实现起很简单,不过一些复杂的触控响应或触控手势什么的,还是使用一些第三方的插件吧,当然你也可以自己封装。不管什么情况,了解决unity原生api还是非常必要的。    

相关的api     1、Toch类:用来记录一个手指触摸在屏幕上的状态与位置的各种相关数据。这其它中只有两个属性是你要注意的,就是Touch.fingerId和Touch.tapCount。                Touch.fingerId: 一个Touch的标识。Input.touches数组中的同一个索引在两帧之前,指向的可不一定是同一个Touch。用来标识某个具体的touch一定要用fingerId,在分析手势时、或处理多点触控时,fingerId是非常重要的。                Touch.tapCount: 点击的总人数,这个属性可以用来模拟“双击”的效果。                这里先普及一个概念吧,一个touch的生命周期是:当一个手指接触到触屏时,产生一个Touch,并分配它一个fingerId,到这个手指离开触屏这个touch就有了。在它整个生命周期里,它的figerId是不会变的。死掉的touch所使用过fingerId当也会被之后的touch多次使用。ps:其实也不是手指一离开,这个touch就立马死掉。还有一种特殊的情况就是:在手指敲开的地方,在一个很短的时间内,一个手指又回到这个地方的话,这个touch没不会死掉,这个也是Touch.tapCount属于的由来吧。这个touch生命周期,是我自己理解的,实际情况是不是这样就不知道了,料想也不会差的太多。     2、TouchPhase枚举:它列表描述了手指触摸的几种状态。对应Touch类中的phase属性。这是状态分别是:Began、Move、Stationary、Ended、Canceled。     3、Input.touches:一个Touch数组,代表着当前帧,所有手指在屏幕上的触碰状态与相关数据。(只读)     4、Input.touchCount: 触摸数量,相当于Input.touches.Length。(只读)     5、Input.multiTouchEnabled:设置与指示当前系统(注意不是指设备哦!)是否启用多点触控。不过这个属性有点怪,我在电脑上测试给它赋false不会报错但完全是没有用的,它的值一值是true. 不过在我的安卓手机上测试是正常的!Ture表示支持多点触控(一般是5点);False表示单点触控。     6、Input.GetTouch(int index):安索引值获取一个Touch对象。

下面一个测试Demo 1、简述:          这个Demo主要是让你的触摸可视化的显示在你的手机(或平板)屏幕上;          并实时记录和显示了手指在屏幕上的状态和相关数据。 2、相关截图: 3、脚本就一个

/* * author: AnYuanLzh * date: 2014/01/18 * */ using UnityEngine; using System.Collections; using System.Collections.Generic; public class MyTouch : MonoBehaviour { /// /// 定义的一个手指类 /// class MyFinger { public int id = -1; public Touch touch; static private List fingers = new List(); /// /// 手指容器 /// static public List Fingers { get { if(fingers.Count==0) { for(int i=0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3