关于unity的鼠标双击和移动触摸屏的双击
来源:互联网 发布:数据分析与eviews应用 编辑:程序博客网 时间:2024/04/30 09:57
鼠标的双击相对比较简单,百度一下可以搜到很多,如下:
function OnGUI(){if(Event.current.isMouse && Event.current.type == EventType.MouseDown && Event.current.clickCount == 2){print("double click");}}
上面是双击屏幕的事件,假如想双击某个物体呢,就要这样:
private var b = false;function OnGUI(){if(Event.current.isMouse && Event.current.type == EventType.MouseDown && Event.current.clickCount == 2){if(b){print("double click " + transform.name);}}}function OnMouseEnter(){b = true;}function OnMouseExit(){b =false;}
意思就是,当鼠标进入你想点击的物体后,双击才有效果,否则鼠标未进入物体,或者exit时,b = false,双击无效果。
下面是移动设备上触屏的双击:
private var t1:double;private var t2:double;function Update(){if(Input.GetMouseButtonDown(0)){t2 = Time.realtimeSinceStartup;if(t2 - t1 < 0.2){print("double click");}t1 = t2;}}
我在一篇博客看到过移动端GetMouseButtonDown是有效果的,所以这样利用t1,t2,记录两次单击的时间间隔,假如小于0.2s,则被判断为双击。
同样,移动端点击某一确定物体的双击事件,把下面脚本赋给要点击的物体,
private var t1:double;private var t2:double;public var cam:Camera;function Update(){if(Input.GetMouseButtonDown(0)){var ray:Ray = cam.ScreenPointToRay(Input.mousePosition);var hit:RaycastHit;if(Physics.Raycast(ray,hit)){if(hit.transform.name == gameObject.transform.name){t2 = Time.realtimeSinceStartup;if(t2 - t1 < 0.2){print("double click " + transform.name);}t1 = t2;}}}}
对于t1和t2可以定义为System.DateTime类型,这样t2 = System.DateTime.Now;相减后用TimeSpan.如下:
private var t1:System.DateTime;private var t2:System.DateTime;public var cam:Camera;function Update(){if(Input.GetMouseButtonDown(0)){var ray:Ray = cam.ScreenPointToRay(Input.mousePosition);var hit:RaycastHit;if(Physics.Raycast(ray,hit)){if(hit.transform.name == gameObject.transform.name){t2 = System.DateTime.Now;if(t2 - t1 < System.TimeSpan(0,0,0,0,200)){print("double click " + transform.name);}t1 = t2;}}}}
最后是,关于GUI的双击,原理都类似:
private var b = false;private var t = 0.0;function OnGUI(){if(GUI.Button(Rect(10,10,80,50),"click me")){t = Time.time;if(b){print("it's doublic click");b = false;}else{b = true;}}}function FixedUpdate(){if(t + 0.2 < Time.time){b = false;}}
0 0
- 关于unity的鼠标双击和移动触摸屏的双击
- 关于unity的鼠标双击和移动触摸屏的双击
- unity的鼠标双击和移动触摸屏的双击
- java 鼠标单击和双击的控制
- unity鼠标双击
- Unity 鼠标双击
- unity鼠标双击
- Unity鼠标双击事件
- 【Unity实用小方法】鼠标双击的判断
- 控件的移动事件和双击事件
- 用Kinect来控制鼠标的移动、单击、双击和右击 (Windows sdk)
- 模拟鼠标的单双击
- s3c2440双击触摸屏的一种判定
- unity鼠标单击双击事件
- 【Unity】怎么判断鼠标双击
- Unity 鼠标双击事件检测
- vc++鼠标双击和单击的区分实现
- javascript 鼠标单击和双击事件并存的实现方法
- SSH三大框架CRUD项目中为什么会出现web页面页面数据出现修改,但是数据库里面的数据却没有修改
- Actor编程模型——简介
- SVN服务器搭建和使用(二)
- SPOJ DQUERY 主席树+lazy+乱搞
- What and where are the stack and heap?
- 关于unity的鼠标双击和移动触摸屏的双击
- yii2学习笔记——03调用界面
- 操作系统中的进程与线程
- 调用Android功能打开网页
- Java中属性和字段的区别
- 趋势科技五大行业成功案例大盘点
- maven介绍(作用,核心概念,用法,常用命令,扩张及配置)
- Struts2文件下载
- 【安卓笔记】gradle入门