检测触摸
要检测 Unity 中的触摸,我们只需要使用 Input.GetTouch()
并将其传递给索引即可。
using UnityEngine;
using System.Collections;
public class TouchExample : MonoBehaviour {
void Update() {
if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)
{
//Do Stuff
}
}
}
要么
using UnityEngine;
using System.Collections;
public class TouchExample : MonoBehaviour {
void Update() {
for(int i = 0; i < Input.touchCount; i++)
{
if (Input.GetTouch(i).phase == TouchPhase.Began)
{
//Do Stuff
}
}
}
}
这些例子触及了最后一个游戏框架。
TouchPhase
在 TouchPhase 枚举中,有 5 种不同类型的 TouchPhase
- 开始 - 手指触摸屏幕
- 移动 - 手指在屏幕上移动
- 静止 - 手指在屏幕上但没有移动
- 结束 - 手指从屏幕上抬起
- 已取消 - 系统取消了触摸跟踪
例如,为了移动对象,该脚本基于触摸被附加到屏幕上。
public class TouchMoveExample : MonoBehaviour
{
public float speed = 0.1f;
void Update () {
if(Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved)
{
Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPosition;
transform.Translate(-touchDeltaPosition.x * speed, -touchDeltaPosition.y * speed, 0);
}
}
}