最近由于一个针对摄象头的复位的需要,涉及到了组合键的检测,在探索的过程中遇到了一些容易忽视的问题,因此在这记录一下,以免日后忘记;

在最开始的构思阶段的时候,我本能的想到了这个方法:

if(Input.GetKey(KeyCode.LeftControl) && Input.GetKey(KeyCode.R))
{//TODO : 功能模块Debug.Log("IN");
}

但是当时试验的时候,并未打包发布,而是直接在unity中进行的。因此,该代码并未起作用。

又在各个网站上搜索后,又得到了如下的方案:

    private void OnGUI(){//检测输入事件if (Event.current.rawType == EventType.KeyDown){EventCallBack(Event.current);}}private void EventCallBack(Event e){bool eventDown = (e.modifiers & EventModifiers.Control) != 0;if (!eventDown) {return;}//仅需检测单个键值时使用if (e.keyCode == KeyCode.R){//TODO : 功能模块Debug.Log("IN");}//修检测多个值时使用//switch (e.keyCode)//{//    case KeyCode.UpArrow://        Debug.Log("按下组合键:ctrl+↑");//        break;//    case KeyCode.DownArrow://        Debug.Log("按下组合键:ctrl+↓");//        break;//    case KeyCode.LeftArrow://        Debug.Log("按下组合键:ctrl+←");//        break;//    case KeyCode.RightArrow://        Debug.Log("按下组合键:ctrl+→");//        break;//}}

这个方法使用的是unity中的Event组件,其中一些函数的解释在这里:

  • Event
  • EventModifiers

但是没有任何疑问的,ctrl + R 仍未检测成功。且这个方法在测试的时候只能检测到部分的按键。这时我才猛然发觉可能是因为按键冲突。果然,在进行打包后,CTRL+ R 可以正常被检测到。同样的,我最开始的构思也是正确的。也能够被检测到;

(PS:在我查询的过程中,我还找到了一种方法,可以通过检测 InputString 的方式进行判断,但是当时因为还未发觉unity按键冲突的问题,所以被我给删了。有兴趣的童鞋可以试一下啊~)

Unity 组合键输入及容易忽略的问题相关推荐

  1. python发送esc_Python组合键输入检测ESC和En

    在下面的doDebuggingMenu函数中,我使用raw_input函数(使用python2.6)获取用户输入.此函数将一直等到用户输入字符序列并按enter键.当然,我希望用户只需按键盘上的ESC ...

  2. js简单的设置快捷键,hotkeys捕获键盘键和组合键的输入

    设置快捷键 这是一个强健的 Javascript 库用于捕获键盘输入和输入的组合键,它没有依赖,压缩只有只有(~3kb). hotkeys on Github hotkeys预览 __ __ __ | ...

  3. Unity中的输入事件总结与数字电视遥控器键值映射

    版权声明:欢迎批评指正,转载请务必注明原文链接:欢迎文章下公开讨论. https://blog.csdn.net/cordova/article/details/51036547 一.Unity的基本 ...

  4. Bash基础(2) 通配符 组合键 数据重定向 管道 tee

    Bash基础(2)     通配符  组合键  数据重定向  管道  tee命令 1 文本名"通配符" *:匹配任意长度的任意字符: ?:匹配任意单个字符: []: 匹配指定范围内 ...

  5. windows命令大全_必收藏!电脑快捷键、组合键大全

    键盘快捷键使用大全所谓快捷键就是使用键盘上某一个或某几个键的组合完成一条功能命令,从而达到提高操作速度的目的.下面为大家介绍一些常用快捷键的使用和功能.希望这些电脑快捷键大全可以给用户带来便捷的上网体 ...

  6. 这是高手最常用的第一快捷组合键 - imsoft.cnblogs

    1.锁定电脑 2.要找电脑上的文件时,一般人会先找到"我的电脑",然后点击打开,而高手总是很酷的,轻轻按下键盘上的Windows键不放然后再按E键,直接打开电脑的资源管理器,而一般 ...

  7. 如何在 JavaFX 的 TextArea 实现回车发送信息而不换行,但组合键 Ctrl + Enter 换行

    如何在 JavaFX 的 TextArea 实现回车发送信息而不换行,但组合键 Ctrl + Enter 换行   JavaFX 的恼人之处在于很多基本的操作都要自己亲力亲为.在默认情况下,在 Tex ...

  8. 如何禁用ALT+CLT+DEL组合键

    需求要禁用禁用ALT+CLT+DEL组合键,方法如下: win + r组合键,调出"运行"对话框,命令行里输入gpedit.msc,点击确定. 打开组策略之后,在里面依次打开用户配 ...

  9. idata界面_iData手持移动终端组合键恢复出厂设置教程

    本文详细介绍iData手持移动终端恢复出厂设置过程,让手持机处于出厂时的"状态",以解决因为手机使用过程中出现的各种问题.比如因为忘记解锁图案多次输入造成的"图案解锁尝试 ...

  10. 关闭笔记本显示器指定组合键才能打开_八大品牌笔记本Fn组合键大全

    掌握笔记本Fn组合键,对全面了解笔记本电脑的功能至关重要,这些组合键能够让你轻松的使用笔记本.不同品牌的电脑Fn组合键有所不同.下面分别介绍联想.华硕.戴尔.三星.惠普.东芝.NEC.IBM八大品牌笔 ...

最新文章

  1. 机器学习-第九章 聚类
  2. es6 --- Proxy的属性(get、set除外)
  3. Centos下载地址
  4. Linux 打包 压缩 解压缩 命令
  5. 无重复字符串的最长子串 python
  6. 一万个“无序”数查找两个重复数,在O(N)的基础上再快一点
  7. Matlab与Access数据库的连接
  8. mysql 只显示箭头_为什么在DOS窗口中使用MySQL时,输入命令后只出现一个箭头,输入什么内容都是这样?...
  9. c语言实现生成彩票随机号
  10. 虚拟机文件上传至dsm服务器,群晖还可以这样玩!VMM虚拟机无损尝鲜DSM7.0
  11. linux设置开机自动运行脚本的方法
  12. java batter_android电池管理系统从上层的java到底层驱动的调用(转载)
  13. 计算机应用课程的体会,计算机课程心得体会
  14. PS如何批量处理图片尺寸大小?免费哟
  15. 谷歌地图开发地图不能显示_Google,为什么地图不能让我在家工作?
  16. 我在CSDN学python-8
  17. php实现网站支付,php银联网页支付实现方法
  18. 替补者的旅行(巨长,慎入)
  19. 自学C/C++如何入门
  20. [渝粤教育] 四川农业大学 计算机网络 参考 资料

热门文章

  1. x86 单线并发多拨_单线多拨软路由。真正打破网络限速,飙升网速的秘诀
  2. 二维条形码概念 | 二维码的知识与历史介绍 | 鸿顺捷知识分享
  3. [芦半山]Android native分析工具ASAN和HWASAN原理解析
  4. mysql 伪表_伪表和伪列
  5. 实习收获之软件思想误区的纠正
  6. Python 利用内置函数把二进制小数转换为十进制
  7. 无线路由器连接无线路由器
  8. Python解决SSL不可用问题
  9. HANA 存储过程 YTD
  10. OSPF协议邻居(Neighbor)与邻接(Adjacency)关系