Unity 触屏操作
当将Unity游戏运行到IOS或Android设备上时,桌面系统的鼠标左键可以自动变为手机屏幕上的触屏操作,但如多点触屏等操作却是无法利用鼠标操作进行的。Unity的Input类中不仅包含桌面系统的各种输入功能,也包含了针对移动设备触屏操作的各种功能,下面介绍一下Input类在触碰操作上的使用。
首先介绍一下Input.touches结构,这是一个触摸数组,每个记录代表着手指在屏幕上的触碰状态。每个手指触控都是通过Input.touches来描述的:
fingerId:触摸的唯一索引
position:触摸屏幕的位置
deltatime:从最后状态到目前状态所经过的时间
tapCount:点击数。Andorid设备不对点击计数,这个方法总是返回1
deltaPosition:自最后一帧所改变的屏幕位置
phase:相位,也即屏幕操作状态
其中phase(状态)有以下这几种:
Began:手指刚刚触摸屏幕
Moved:手指在屏幕上移动
Stationary:手指触摸屏幕,但自最后一阵没有移动
Ended:手指离开屏幕
Canceled:系统取消触控跟踪,原因如把设备放在脸上或同时超过5个触摸点
下面通过一段代码来进行移动设备触摸操作的实现:
using UnityEngine;
using System.Collections;
public class AndroidTouch : MonoBehaviour
{
private int isforward;//标记摄像机的移动方向
//记录两个手指的旧位置
private Vector2 oposition1 =