1、打开Unity,新建一个空工程,具体如下图
2、在场景中添加一个“Cube”,并且合理布局,便于视野观察,具体如下图
3、在工程中新建一个脚本“LongPress”,双击脚本或者右键“Open C# Project”打开脚本,具体如下图
4、编写脚本,内容大致:首先设置变量,当触摸屏幕,发射射线,射到物体,进行长按计时,1秒后隐藏射到物体,具体代码和代码说明如下图
5、脚本代码如下:usingUnityEngine;pub盟敢势袂licclassLongPress:MonoBehaviour{//滤鲇魍童设置变量记录触摸时间与bool触摸 privatefloattouchTime; privateboolnewTouch=false;//Usethisforinitialization voidStart(){ } //Updateiscalledonceperframe voidUpdate(){ //判断是否单击,单击则进入if分支 if(Input.GetMouseButton(0)){//设置一条射线 Rayray=Camera.main.ScreenPointToRay(Input.mousePosition);//设置接收射线的返回值 RaycastHithitInfo;//如果射线碰到物体,返回为真,进入if分支 if(Physics.Raycast(ray,outhitInfo)){//当一根手指触摸,则进入if分支 if(Input.touchCount==1){//记录触摸 Touchtouch=Input.GetTouch(0);//如果触摸刚开始,则进入if分支 if(touch.phase==TouchPhase.Began){//设置bool触摸为真,且记录时间 newTouch=true; touchTime=Time.time;//如果触摸静止,则进入该分支 }elseif(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 实用教程 之 快速实现长按触摸功能》讲解结束,谢谢