using UnityEngine;
using UnityEngine.UI;

public class TouchDemo : MonoBehaviour
{
public Text text;
private void Update()
{
//Input.TouchCount的值为检测到的手指数

//每当一个手指触摸屏幕时候,unity都会为其生成一个Touch对象
//Input.touchCount可以获取当前Touch的个数
if (Input.touchCount>0)
{
//unity会将当前存在的所有Touch对象存在Input.touches数组里面
//01.索引为0代表获取最先按下的那个手指对象
//Input.GetTouch(0). phase括号中的0表示第一个触碰的手指,
Touch myTouch = Input.touches[0];
//02.Input.GetTouch也可以获取index的Touch对象
Touch touch =Input.GetTouch(0);
// myTouch.altitudeAngle 手指与屏幕的角度
// myTouch.azimuthAngle 垂直夹角

//03fingerId识别当前手指的唯一标识
int fingerId = myTouch.fingerId;
//04deltaPosition当前位置为上次位置的差
Vector3 deltaPosition =myTouch.deltaPosition;
//05.deltaTime 本次记录Touch对象状态和上次记录Touch状态之间的时间差
float deltaTime =myTouch.deltaTime;
//06.Touch对象对应的手指的点击屏幕的次数
//Touch对象的生命周期的结束并不是手指离开屏幕后立即销毁
//如果一根手指在同一位置快速点击,则视作同一Touch对象
int count =myTouch.tapCount;

//07.phase当前手指对应的Touch对象的阶段(状态)
TouchPhase touchPhase =myTouch.phase;
/* // 手指刚触摸到屏幕时必触发1次
Input.GetTouch(0).phase == TouchPhase.Began;
// 手指在屏幕滑动时触发多次
Input.GetTouch(0).phase == TouchPhase.Moved;
// 手指长按屏幕触发多次
Input.GetTouch(0).phase == TouchPhase.Stationary;
// 手指从屏幕移开时必触发一次
Input.GetTouch(0).phase == TouchPhase.Ended;
// 取消追踪如用户将超过5根手指或者脸贴在屏幕触发
Input.GetTouch(0).phase == TouchPhase.Canceled;*/

//08当前Touch对象所对应的手指的屏幕坐标
Vector2 postion=myTouch.position;
switch (myTouch.phase)
{
//当一个手指按下时候其对应的Touch的phase是Begin
case TouchPhase.Began:
break;
//当一个手指移动的时候其对应的Touch的phase是Moved
case TouchPhase.Moved:
break;
case TouchPhase.Stationary:
break;
case TouchPhase.Canceled:
break;
}

}
}

}

myTouch.altitudeAngle 手指与屏幕的角度

myTouch.azimuthAngle 垂直夹角