檢測觸控
要檢測 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);
}
}
}