当将Unity游戏运行到ios或android设备上时,桌面系统中的鼠标左键操作可以自动变为手机屏幕上的触屏操作,但鼠标操作无法实现一些特有的触屏操作,比如多点触屏。
触控对于Android移动设备来说是一种必不可少的交互方式,今天我们就来初步了解一下Unity3D中有关触控的API,下一篇中给大家演示如何使用Unity3D制作一个触控小Demo。
Touch 是一个结构体,每当发生一次触摸,系统就生成一个Touch类型的变量,存储和本次触摸的相关信息。如果发生多点触控,那么系统会生成多个Touch类型变量。
Touch有如下主要成员变量:
position | 触摸位置的坐标 | Vector2类型 | |
deltaPosition | 触摸的位置变化量 | Vector2类型 | 当手指接触屏幕,向某一方向划动时起始位置到终止位置的变化量 |
deltaTime | 触摸的时间变化量 | float类型 | |
phase | 触摸所处阶段 | TouchPhase类型 | 关于TouchPhase会在下边加心介绍 |
Input.touchCount 静态整形变量,当手一个手指触在屏幕上时,返回1,两个手指触在屏幕上时,返回2,依次类推。
Input.GetTouch ( index : int ) 按序号获取触摸点(首个触摸点序号为0)。举例:当我一根手指触在屏幕上时,要获取该点的信息我们可以在Update方法中添加如下语句获取触点在:
如果有两个点呢?先来的就是Input.GetTouch(0),而后来的就是Input.GetTouch(1),依次类推。
Input.touches 返回一个Touch类型数组,保存当前所有触摸点生成的Touch类型变量。
TouchPhase 它是一个枚举类型,其中含有5种类型:
Began | 手指开始接触屏幕 |
Moved | 手指接触屏幕并在屏幕上划动 |
Stationary | 手指接触屏幕并保持不动 |
End | 手指离开屏幕 |
Cancel | 取消对本次触摸的跟踪 |