zoukankan      html  css  js  c++  java
  • 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分别表示鼠标的两个侧键。

     触发结果:

     

    *** |  以上内容仅为学习参考、学习笔记使用  | ***

  • 相关阅读:
    火狐优化及遇到的问题
    拷贝工程,名字不改变问题
    Ajax基础实例
    Java中检测字符串的编码格式
    innerHTML和outerHTML有什么区别
    启动Tomcat出现“Bad version number in .class file (unable to load class XXX)”解决
    MyEclipse8.6安装SVN 教程 与遇到的问题
    彻底卸载JDK的-并只依赖配置环境安装JDK(不依赖注册表)-解决Error opening registry key'softwareJavasoftJava Runti问题
    数据库下的分页代码
    WSGI
  • 原文地址:https://www.cnblogs.com/ChenZiRong1999/p/13217679.html
Copyright © 2011-2022 走看看