Unity 鼠标点击事件
鼠标事件
鼠标事件,都是当鼠标和GUI或者碰撞体(Collider)交互的时候触发的。
需要注意的是,drag 其实就是鼠标 Down 后到 Up 之前持续每帧都会发送此消息。
常见的鼠标事件:
-
OnMouseDown:当鼠标上的按钮被按下时触发的事件
-
OnMouseDrag:当用户鼠标拖拽GUI元素或碰撞体时调用
-
OnMouseEnter:当鼠标进入物体范围时被调用
-
OnMouseExit:当鼠标退出时被调用
-
OnMouseOver:当鼠标移动到某对象的上方时触发的事件
-
OnMouseUp:当鼠标按键被松开时触发的事件
按下事件:Input.GetMouseButtonDown()
当鼠标某一个按键按下时,便会返回 True,但是即使玩家一直按着鼠标按键,也仅仅只会返回一次 True。
1 void Update() 2 { 3 if (Input.GetMouseButtonDown(0)) 4 { 5 print("鼠标左键被按下!"); 6 } 7 if (Input.GetMouseButtonDown(1)) 8 { 9 print("鼠标右键被按下!"); 10 } 11 if (Input.GetMouseButtonDown(2)) 12 { 13 print("鼠标中键被按下!"); 14 } 15 if (Input.GetMouseButtonDown(3)) 16 { 17 print("鼠标侧键被按下!"); 18 } 19 }
这个方法只有一个参数,其中:0 表示鼠标左键,1表示鼠标右键,2表示鼠标中键,3和4分别表示鼠标的两个侧键。
触发结果:
抬起事件:Input.GetMouseButtonUp()
鼠标在按下后肯定要抬起,按下的时候触发按下事件,抬起的时候触发抬起事件。
1 void Update() 2 { 3 if (Input.GetMouseButtonUp(0)) 4 { 5 print("鼠标左键抬起!"); 6 } 7 if (Input.GetMouseButtonUp(1)) 8 { 9 print("鼠标右键抬起!"); 10 } 11 if (Input.GetMouseButtonUp(2)) 12 { 13 print("鼠标中键抬起!"); 14 } 15 if (Input.GetMouseButtonUp(3)) 16 { 17 print("鼠标侧键抬起!"); 18 } 19 }
与按下事件相同,也只有一个参数,其中:0 表示鼠标左键,1表示鼠标右键,2表示鼠标中键,3和4分别表示鼠标的两个侧键。
触发结果:
长按事件:Input.GetMouseButton()
检测鼠标按键中某个按键一直按下的状态或者是获得按下的按键,如果一直按着鼠标按键,便会多次返回 True。
1 private float timer = 0; 2 3 void Update() 4 { 5 if (Input.GetMouseButton(0)) 6 { 7 timer += Time.deltaTime; 8 } 9 else if (Input.GetMouseButtonUp(0) && timer != 0) 10 { 11 print("鼠标左键长按" + timer + "秒!"); 12 timer = 0; 13 } 14 if (Input.GetMouseButton(1)) 15 { 16 timer += Time.deltaTime; 17 } 18 else if (Input.GetMouseButtonUp(1) && timer != 0) 19 { 20 print("鼠标右键长按" + timer + "秒!"); 21 timer = 0; 22 } 23 }
和之前的两个事件一样,只有一个参数,其中:0 表示鼠标左键,1表示鼠标右键,2表示鼠标中键,3和4分别表示鼠标的两个侧键。
触发结果:
*** | 以上内容仅为学习参考、学习笔记使用 | ***