1.首先是点击事件的状态 TouchPhase
Began 手指已触摸屏幕
Moved 手指在屏幕上移动
Stationary 手指触摸屏幕,但是并没有移动
Ended 手指从屏幕上移动,这是一个触摸的最后状态
Canceled 系统取消跟踪触摸,如用户把屏幕放到他的脸上或超过五个接触同时发生。这是一个触摸的最后状态
2.下面是双击的点击
void Update () {
if (Input.GetMouseButtonDown(0))
{
//从鼠标发射一条射线
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hitInfo;
if (Physics.Raycast(ray,out hitInfo))
{
//如果只有一个触摸,触摸状态是刚开始
if (Input.touchCount==1&&Input.GetTouch(0).phase==TouchPhase.Began)
{
//触摸点击次数为两次
if (Input.GetTouch(0).tapCount==2)
{
//销毁点击物体
Destroy(hitInfo.collider.gameObject);
}
}
}
}
}
2.下面是长按
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Touch1 : MonoBehaviour {
bool newTouch = false;
float touchTime = 0;
void Update () {
if (Input.GetMouseButtonDown(0))
{
//从鼠标发射一条射线
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hitInfo;
if (Physics.Raycast(ray,out hitInfo))
{
if (Input.touchCount==1)
{
Touch touch = Input.GetTouch(0);
if (touch.phase==TouchPhase.Began)
{
newTouch = true;
touchTime = Time.time;
}
else if (touch.phase==TouchPhase.Stationary)
{
if (newTouch==true&&Time.time-touchTime>=1)
{
newTouch = false;
Destroy(hitInfo.collider.gameObject);
}
}
else
{
newTouch = false;
}
}
}
}
}
}