Unity学习疑问记录之触屏

时间:2022-09-05 04:09:44

当将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 取消对本次触摸的跟踪