檢測觸控

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