using UnityEngine;
public class AndroidTouch : MonoBehaviour
{
private void Update()
{
#region 手指按下、手指移动、手指松开
//手指按下
if (Input.touchCount == 1)
{
if (Input.touches[0].phase == TouchPhase.Began)
{
// 手指按下时,要触发的代码
}
}
//手指在屏幕上滑动
if (Input.touchCount == 1)
{
if (Input.touches[0].phase == TouchPhase.Moved)
{
// 手指滑动时,要触发的代码
float s01 = Input.GetAxis("Mouse X"); //手指水平移动的距离
float s02 = Input.GetAxis("Mouse Y"); //手指垂直移动的距离
}
}
//手指在屏幕上松开时 下面两个判断只能写一个,否则按下后会不停执行其中内容
if (Input.touches[0].phase == TouchPhase.Ended || Input.touches[0].phase != TouchPhase.Canceled)
{
}
#endregion
#region 多手指触发事件
if (Input.touchCount == 2) //代表有两个手指
{
// 第一个手指 第二个手指
if (Input.GetTouch(0).phase == TouchPhase.Moved && Input.GetTouch(1).phase == TouchPhase.Moved)
{
Vector3 s1 = Input.GetTouch(0).position; //第一个手指屏幕坐标
Vector3 s2 = Input.GetTouch(1).position; //第二个手指屏幕坐标
float olddis = 0;
float newdis = Vector2.Distance(s1, s2);
if (newdis > olddis) //手势外拉
{
}
if (newdis < olddis) //手勢內拉
{
}
olddis = newdis;
}
}
#endregion
}
//总结:
//1.不管是触屏事件还是PC端的事件,世界转屏幕还是屏幕转世界以及射线检测都是管用的
//2.安卓端的手指坐标(Input.touches[0].position)等同于PC端的鼠标屏幕坐标(Input.mousePosition)
}