屏幕上的觸摸檢測一般會檢測點擊,滑動,長按等
TouchPhase Enumeration
Describes phase of a finger touch.
Began |
A finger touched the screen. |
Moved |
A finger moved on the screen. |
Stationary |
A finger is touching the screen but hasn't moved. |
Ended |
A finger was lifted from the screen. This is the final phase of a touch. |
Canceled |
The system cancelled tracking for the touch, as when (for example) the user puts the device to her face or more than five touches happened simultaneously. This is the final phase of a touch. |
下面放兩個例子:
滑動屏幕,物體跟着移動;
using UnityEngine;
using System.Collections;
public class example : 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);
}
}
}
射線檢測然後生成一個新物體:
using UnityEngine;
using System.Collections;
public class example : MonoBehaviour {
public GameObject particle;
void Update() {
int i = 0;
while (i < Input.touchCount) {
if (Input.GetTouch(i).phase == TouchPhase.Began) {
Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(i).position);
if (Physics.Raycast(ray))
Instantiate(particle, transform.position, transform.rotation) as GameObject;
}
++i;
}
}
}