Unity
打开Unity,新建一个空工程,具体如下图
在场景中添加一个“Cube”,并且合理布局,便于视野观察,具体如下图
在工程中新建一个脚本“LongPress”,双击脚本或者右键“Open C# Project”打开脚本,具体如下图
编写脚本,内容大致:首先设置变量,当触摸屏幕,发射射线,射到物体,进行长按计时,1秒后隐藏射到物体,具体代码和代码说明如下图
脚本代码如下: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; } } } } }}
脚本编译正确后,回到Unity界面,在场景中新建“GameObject”,把脚本挂载上去,具体如下图
可以导出应用打包到移动端测试,当在物体上长按一段时间,物体消失,具体如下图
到此,《Unity 实用教程 之 快速实现长按触摸功能》讲解结束,谢谢
您的支持,是我们不断坚持知识分享的动力,若帮到您,还请帮忙投票有得;若有疑问,请留言