无标题文章

Unity3dTouch触摸属性的使用方法

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

Input类中对触摸操作的方法和变量

方法和变量

说明

GetTouch

返回指定的触摸数据对象

Touches

当前所有触摸状态列表

touchCourt

当前所有触摸状态列表长度

multiTouchEnable

系统是否支持多点触摸

simulateMouseWithTouches

屏幕触控模拟鼠标的点击

touchSupported

返回应用程序正在运行的设备是否支持触摸输入

注意Input.touches返回的是Touch[],每个记录代表一个手指在屏幕上的触碰状态

Input.GetTouch (intindex )方法返回值是Touch,一个存放触摸信息的对象不允许分配临时变量。

通过GetTouch或者touches可以访问移动设备的触摸数据,数据保存在Touch的结构体中,结构体Touch的变量

变量

说明

Fingered

触摸数据的唯一索引id

Position

触摸的位置

deltaPosition

触摸位置的改变量

deltaTime

距离上次触摸数据变化的时间间隔

tapCount

单击次数

Phase

触摸的状态的描述

通过调用phase可以访问当前的触摸状态,

变量

说明

Began

手指刚触摸屏幕

Moved

手指在屏幕上移动

Stationary

手指触碰屏幕并从上一帧起没有移动

Ended

手指离开屏幕

Canceled

系统取消了跟踪触摸

TouchPhase枚举:它列表描述了手指触摸的几种状态。对应Touch类中的phase属性。这是状态分别是:Began、Move、Stationary、Ended、Canceled。

相关的api

1、Toch类:用来记录一个手指触摸在屏幕上的状态与位置的各种相关数据。这其它中只有两个属性是你要注意的,就是Touch.fingerId和Touch.tapCount。

Touch.fingerId:一个Touch的标识。Input.touches数组中的同一个索引在两帧之前,指向的可不一定是同一个Touch。用来标识某个具体的touch一定要用fingerId,在分析手势时、或处理多点触控时,fingerId是非常重要的。

Touch.tapCount:点击的总人数,这个属性可以用来模拟“双击”的效果。

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对象。

官方例子根据手指在屏幕上移动来移动物体

usingUnityEngine;

usingSystem.Collections;

public class ExampleClass :MonoBehaviour

{

public float speed = 0.1F;

void Update()

{

if (Input.touchCount> 0 &&Input.GetTouch(0).phase ==TouchPhase.Moved)

{

// Get movement of the finger since lastframe

Vector2touchDeltaPosition =Input.GetTouch(0).deltaPosition;

// Move object across XY plane

transform.Translate(-touchDeltaPosition.x * speed,-touchDeltaPosition.y * speed, 0);

}

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容