Unity输入控制
来源:互联网 发布:淘宝客服招聘网 编辑:程序博客网 时间:2024/05/21 22:22
Unity 中,使用 Input 类获取用户输入,记录下常用的函数及注意事项。
键盘输入:
Input.GetKeyDown(KeyCode key) 获取指定按键被按下的事件,直到松开按键再次按下,才能获取第二次输入。其中参数 key 与物理按键对应,例如KeyCode.A 代表键盘上的 ‘A’ 键,KeyCode 与 物理按键的映射是无法改变的。
Input.GetKeyUp(KeyCode key) 与 Input.GetKeyDown(KeyCode key) 同理,是在按键松开的时候获得输入。
Input.GetKey(KeyCode key) 在 key 被持续按住时,调用此方法。
鼠标输入:
Input.GetMouseButtonDown(int button)
Input.GetMouseButtonUp(int button)
Input.GetMouseButton(int button)
鼠标输入与键盘输入类似,参数 0 代表鼠标左键、参数 1 代表鼠标右键、参数 2 代表鼠标中键。
自定义输入:
Unity 允许创建自定义的虚拟轴,虚拟按键是虚拟轴的特殊情况,在InputManager 中统一视为虚拟轴。 选择菜单栏中的 Edit->Project Settings->Input 可以打开InputManager,如图:
Unity 默认创建了18个虚拟轴,每个轴的属性如图:
Name 是虚拟轴的名称,通过 Name 在脚本中访问虚拟轴,可以为不同的设备指定同名的虚拟轴,输入来自于用户正在使用的那个设备,在写脚本时,无需考虑输入来自于哪里。
Negative Button 轴的负按键对应的物理按键。
Positive Button 轴的正按键对应的物理按键。
Alt Negative Button 备选负按键。
Alt Positive Button 备选正按键。
Gravity 当键松开后,轴复位的速度。 越大表示越快复位。
Dead 死亡区间,在此区间的值都会被认为是复位值,即0。 个人理解是绝对值在此区间。
Sensitivity 灵敏度,对按键来说是响应速度,与 Gravity 相对,对鼠标来说是单位时间内移动距离的影响
Snap 选中后,当按下反方向键后,值立刻复位;如果不选中,原方向值不会立刻归0,会有一个减速到0的过程。
Invert 选中后,正负按键颠倒。
Axis 这个虚拟轴所映射的设备输入轴(摇杆、鼠标、手柄等)。
在脚本中通过以下方法获取虚拟按键输入:
Input.GetButtonUp(string buttonName)
Input.GetButtonDown(string buttonName)
Input.GetButton(string buttonName)
获取轴输入:
Input.GetAxis(string axisName) 输入轴的值一般在 -1 到 1之间,鼠标输入表示的是移动距离,所以会大于这个范围。使用虚拟轴的好处是,游戏发布后,用户可以自定义键位设置。
Note: 官方文档明确说明,GetXXXUp、GetXXXDown 这类输入一定要放在 Update() 中,而不是 FixedUpdate() 中, 原因是在每一帧会将输入重置,意思就是说在 Update() 中一定能检测到输入,并将输入重置。因此如果把此类 Input 方法放在 FixedUpdate() 中,有可能造成漏掉输入的情况,同时也有可能造成一次输入检测出多次。 而 GetKey()、GetButton()、GetMouseButton()、GetAxis() 则没有明确说明,由于是连续检测,应该也可以放在 FixedUpdate() 。
- Unity输入控制
- Unity学习之输入与控制
- Unity常用输入控制GameObject运动
- 【Unity&UGUI】输入框代码控制InputField,并显示输入文本
- 控制输入
- 输入控制
- 【Unity 3D】学习笔记四十六:输入与控制——键盘事件
- 自制OculusVR控制(一)——利用Unity的自带方法实现VR的控制输入
- Unity中的输入
- unity 外设输入
- 003.unity获取输入
- Unity 半屏输入
- Unity输入系统
- Unity半屏输入
- Unity 输入系统
- Unity 相机控制集合。。。。
- unity 键盘控制移动
- Unity中多个音乐控制
- bitset用法
- PAT 1070 乙等 (结绳) c++ 版本
- BZOJ 4819: [Sdoi2017]新生舞会
- 最近玩喂喂我的小仓鼠吧,玩上瘾了……
- java常识
- Unity输入控制
- git学习:git常用命令
- JZOJ 4.22 2129——【2017.4.21普及】礼物
- #上古神器sed命令(下) [toc] ###测试文档:(people.txt) ``` Jackis 18-year old, he comes from US. Mikeis 16-y
- 比特币Bitcoin源代码安装编译
- 如何防止quartz的Job暂停恢复后补充调度
- [私人笔记]西瓜书/机器学习
- 循环对整数的位数进行统计
- poj 3468 A Simple Problem with Integers