Unity: Unity3D 模拟鼠标单击/双击
来源:互联网 发布:短线是银炒股软件 编辑:程序博客网 时间:2024/04/30 08:09
该文来自:http://www.omuying.com/article/123.aspx
功能代码:
using UnityEngine;using System.Collections;public class MouseResponseManager{public static void Register(GameObject objectItem, Action clickCallback, Action doubleCallback){if(objectItem == null){objectItem = new GameObject();objectItem.name = "MouseResponseItem";}MouseResponseItem mouseResponseItem = objectItem.AddComponent<MouseResponseItem> ();mouseResponseItem.Init (clickCallback, doubleCallback);}}public class MouseResponseItem : MonoBehaviour{private bool mouseDownStatus;private int mouseDownCount;private float lastTime;private float currentTime;private Action clickCallback;private Action doubleCallback;public void Init(Action clickCallback, Action doubleCallback){this.clickCallback = clickCallback;this.doubleCallback = doubleCallback;}void Update(){if(Input.GetMouseButtonDown(0)){if(!this.mouseDownStatus){this.mouseDownStatus = true;//Debug.Log("Click !");if(this.clickCallback != null) this.clickCallback();// 如果按住数量为 0if(this.mouseDownCount == 0){// 记录最后时间this.lastTime = Time.realtimeSinceStartup;}this.mouseDownCount ++;}}if(Input.GetMouseButtonUp(0)){//Debug.Log("Up !");this.mouseDownStatus = false;}if(this.mouseDownStatus){//Debug.Log("Hold !");if(this.mouseDownCount >= 2){this.currentTime = Time.realtimeSinceStartup;if(this.currentTime - this.lastTime < 0.3f){this.lastTime = this.currentTime;this.mouseDownCount = 0;//Debug.Log("Double Click");if(this.doubleCallback != null) this.doubleCallback();}else{// 记录最后时间this.lastTime = Time.realtimeSinceStartup;this.mouseDownCount = 1;}}}}}
测试代码
using UnityEngine;using System.Collections;public class Test : MonoBehaviour {void Start(){MouseResponseManager.Register(null, ()=>{Debug.Log("click");}, ()=>{Debug.Log("double click");});}void OnGUI (){GUI.Label(new Rect(15, 15,300, 100), "在舞台上单击/双击查看输出!");}}
源代码 位于:http://www.omuying.com/article/123.aspx
0 0
- Unity: Unity3D 模拟鼠标单击/双击
- unity鼠标单击双击事件
- Unity3D工具类 - 鼠标单击/双击
- 鼠标双击变单击
- Qt使用Windows Api模拟鼠标单击双击滚轮事件
- 鼠标单击变双击问题
- js判断鼠标双击单击
- 鼠标单击和双击处理
- js判断鼠标双击单击
- 鼠标添加单击双击事件
- unity鼠标双击
- Unity 鼠标双击
- unity鼠标双击
- Unity鼠标双击事件
- 模拟鼠标单击消息
- vc模拟鼠标单击
- java 鼠标单击和双击的控制
- 光电鼠标单击变双击了怎么办?
- 新BOJ 87. 日期
- 。VS2010 C++项目设置外部库的方法
- Yahoo团队经验:网站性能优化的34条黄金法则
- Java函数参数值传递还是引用传递
- c++第一次上机实验1-3
- Unity: Unity3D 模拟鼠标单击/双击
- 基因数据处理1之mapping_to_cram
- 解决ScrollView嵌套ListView问题
- MySQL不能使用/tmp
- Autotools 编译工程
- ActiveMQ快速上手
- Android之数据传输利器和低耦合器EventBus解析
- C++第1次作业
- [symfony2源码阅读]Response