Unity 实用教程 之 快速实现长按触摸功能
1、打开Unity,新建一个空工程,具体如下图

2、在场景中添加一个“Cube”,并且合理布局,便于视野观察,具体如下图

3、在工程中新建一个脚本“LongPress”,双击脚本或者右键“Open C# Project”打开脚本,具体如下图

4、编写脚本,内容大致:首先设置变量,当触摸屏幕,发射射线,射到物体,进行长按计时,1秒后隐藏射到物体,具体代码和代码说明如下图


5、脚本代码如下:
using UnityEngine;
public class LongPress : MonoBehaviour {
//设置变量记录触摸时间与bool触摸
private float touchTime;
private bool newTouch = false;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
//判断是否单击,单击则进入if分支
if (Input.GetMouseButton (0)){
//设置一条射线
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
//设置接收射线的返回值
RaycastHit hitInfo;
//如果射线碰到物体,返回为真,进入if分支
if (Physics.Raycast (ray, out hitInfo)) {
//当一根手指触摸,则进入if分支
if (Input.touchCount == 1 ) {
//记录触摸
Touch touch = Input.GetTouch (0);
//如果触摸刚开始,则进入if分支
if (touch.phase == TouchPhase.Began) {
//设置bool触摸为真,且记录时间
newTouch = true;
touchTime = Time.time;
//如果触摸静止,则进入该分支
}else if (touch.phase == TouchPhase.Stationary) {
//当bool触摸为真,且触摸时间大于等于1秒
if (newTouch == true && (Time.time - touchTime) >= 1.0f) {
//设置bool触摸为假,并且隐藏物体
hitInfo.collider.gameObject.SetActive (false);
吐婶著 newTouch = false;
}
//其他的情况,进入该分支
} else {
//设置bool触摸为假
newTouch = false;
}
}
}
}
}
}
6、脚本编译正确后,回到Unity界面,在场景独爹中新建“GameObject”,把脚本挂载上去,具体如下图

7、可以导出应用打包到移动端测试,当在物体上长按一段时间,物体消失,具体良敏如下图


8、到此,《Unity 实用教程 之 快速实现长按触摸功能》讲解结束,谢谢