在Unity中,手机触摸屏幕的状态可以通过Touch
结构体的phase
属性来判断。TouchPhase
枚举包含了不同的触摸阶段,如Began
、Moved
、Stationary
、Ended
和Canceled
。下面是如何在Unity中检测这些触摸阶段的示例代码:
void Update()
{
// 遍历所有的触摸点
for (int i = 0; i < Input.touchCount; i++)
{
Touch touch = Input.GetTouch(i);
switch (touch.phase)
{
case TouchPhase.Began:
// 触摸开始
Debug.Log("Touch Began");
break;
case TouchPhase.Moved:
// 触摸移动
Debug.Log("Touch Moved");
// 可以使用touch.deltaPosition来获取移动的增量
break;
case TouchPhase.Stationary:
// 触摸静止(手指按住不动)
Debug.Log("Touch Stationary");
break;
case TouchPhase.Ended:
// 触摸结束(手指抬起)
Debug.Log("Touch Ended");
break;
case TouchPhase.Canceled:
// 触摸取消(例如,电话来电导致触摸中断)
Debug.Log("Touch Canceled");
break;
}
}
}
在这个例子中,我们使用了一个for
循环来遍历所有的触摸点,并使用switch
语句来检查每个触摸点的phase
属性。根据phase
的值,我们可以确定触摸处于哪个阶段,并执行相应的代码。这是处理Unity中触摸输入的标准方法。