关于unity的鼠标双击和移动触摸屏的双击
来源:互联网 发布:淘宝销售额的计算公式 编辑:程序博客网 时间:2024/04/30 15:20
鼠标的双击相对比较简单,百度一下可以搜到很多,如下:
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 鼠标单击和双击事件并存的实现方法
- eclipse集成weblogic开发环境的搭建
- iBatis resultMap出错 The error happened while setting a property on the result object 解决办法
- 【web开发学习笔记】Structs2 Action学习笔记(一)
- libGDX视频教程(三) -- 中文绘制
- 各种编码UNICODE、UTF-8、ANSI、ASCII、GB2312、GBK详解
- 关于unity的鼠标双击和移动触摸屏的双击
- 服务器多Tomcat部署
- jquery draggable使用说明
- IOS利用Core Text对文字进行排版
- Struts工作原理
- 内核中内存分配--关于高端内存
- Swift中文教程(八) 枚举类型
- libGDX视频教程(四) -- 游戏动画
- 为什么每个前端开发者都要理解页面的渲染?