一、Unity的基本输入事件(最常用):
鼠标键盘事件靠在Update事件周期中不断检测触发:
鼠标点击:
- Input.GetMouseButtonDown(0) //鼠标左键按下
- Input.GetMouseButtonDown(1) //鼠标右键按下
- Input.GetMouseButtonUp(0) //鼠标左键抬起
- Input.GetMouseButtonUp(1) //鼠标右键抬起
键盘事件:
- Input.GetKeyDown(KeyCode.键值) //键盘按下
- Input.GetKeyUp(KeyCode.键值) //键盘抬起
常用的键值:
- KeyCode.大写字母 //字母键
- KeyCode.UpArrow
- KeyCode.DownArrow
- KeyCode.LeftArrow
- KeyCode.RightArrow
- KeyCode.Return //回车
- KeyCode.Escape //Esc返回
- KeyCode.Space //空格
- KeyCode.LeftControl
- KeyCode.RightControl
- KeyCode.LeftShift
- KeyCode.RightShift
- KeyCode.Tab
- KeyCode.Delete
- KeyCode.Backspace
文章末尾有详细键值表!
二、数字电视遥控器输入事件的映射:
小米盒子遥控器的按键除了OK确认选定键其他基本跟unity的键盘相对应(数字电视中小米盒子比较特殊,跟其他数字电视不一样,键值映射要特殊考虑):
上下左右对应箭头,KeyCode.Escape是返回键(对应键盘的Esc),KeyCode.Menu是遥控器的菜单键(对应键盘的右contrl)
其中的确认键官方给出了说明方法是定义: KeyCode DPAD_CENTER = (KeyCode)10; 然后跟其他KeyCode一样检测DPAD_CENTER就可以了;
//测试获得数字电视的键值映射:
方向键:
上: KeyCode.UpArrow
下: KeyCode.DownArrow
左: KeyCode.LeftArrow
右: KeyCode.RightArrow
功能键:
OK键: KeyCode.JoystickButton0(小米盒子比较特殊,键值为:KeyCode MIOkKeyCode = (KeyCode)10;)
返回键: KeyCode.Escape
菜单键: KeyCode.Menu
三、NGUI中的冲突问题:
关于KeyCode的回车键有一个注意问题:在NGUI中回车键会自动触发,(可以到NGUI脚本序列化面板设置关掉),因此可能出现检测KeyCode的回车键,用户点击回车键会触发两次回车键事件,最好换成