以上就是Input.GetTouch可以取得的參數,試著在手機上顯示的情況,以下是程式碼:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class TouchControl : MonoBehaviour {
public Text touchData;
void Update () {
touchData.text = " ";
if (Input.touchCount > 0){//(0)
for (int i = 0; i < Input.touchCount; i++) {
touchData.text += "Finger Id:" + Input.GetTouch(i).fingerId.ToString()//(1)
+ " Tap Count:" + Input.GetTouch(i).tapCount.ToString()//(2)
+ "\n"
+ " Position:" + Input.GetTouch(i).position.ToString()//(3)
+ "\n"
+ " rawPosition:" + Input.GetTouch(i).rawPosition.ToString()//(4)
+ "\n"
+ " Delta Position:" + Input.GetTouch(i).deltaPosition.ToString()//(5)
+ "\n"
+ " Delta Time:" + Input.GetTouch(i).deltaTime.ToString()//(6)
+ "\n"
+ " Phase:" + Input.GetTouch(i).phase.ToString()//(7)
+ "\n"
+ "\n";
}
}
}
}
(0)在抓觸控點時,首先要確定觸控點數量,也就是Input.touchCount要大於0。(1)fingerId:觸控點的編號,會依照觸控的先後給予編號。
(2)tapCount:點擊次數,在短時間即極小範圍間點即會被累加,不過實際時間和範圍官網也沒提到,可以用來判斷連續點擊。
(3)position:目前的觸碰位置,左下角為原點,數值的單位是pixel,會隨著觸碰點移動改變。
(4)rawPosition:觸碰的初始位置,左下角為原點,數值的單位是pixel,不會因為觸碰點移動改變數值。
(5)deltaPosition:前一個frame到目前frame的移動距離。
(6)deltaTime:前一個frame到目前frame的經過時間。
(7)phase:目前觸控點的狀態:
Began:觸控開始。
Moved:觸控點移動。
Stationary:觸控點停止。
Ended:觸控結束。
Canceled:觸控因為系統原因結束。
為了今後會用到的觸控功能花了些時間研究,這次就到這裡。

沒有留言:
張貼留言