Unity Input的手柄映射

这段时间在用Unity做用手柄操作的游戏,其中有几个按键有点不解,于是查了一些资料,现在总结出来分享一下

首先这里有张映射图
手柄在UnityInput的映射

下面是几个例子,比如我要在input里面设置按A键,就新增一个input映射的一项。

Name
就是与Input.GetAxis( "Name" )这个函数里面的Name相对应的名字。GetAxis出来的值一般在[-1,1]的范围内。并且Name可以重复,重复的话Input会同时监听所有名字相同的按键。比如如果要设置3个按键让人物向左移动,写两个重复的Name以获取最多4个按键或者轴的监听。
Negative Button
这里填正方向的输入键的名称,比如a(下面会列一份表,来表明哪些键可以填入)
Positive Button
这里填正方向的输入键的名称,比如d
Alt Negative Button和Alt Positive Button
这里和上面两个设置是一样的效果,是第二按键
Gravity
没有按键的时候,按过的键的衰减速度
Dead
死亡区域,比如丢了按键,值要从1衰减到0,那么这个死区就是把哪个范围的值视为0
Type
Key or Mouse Button:就是使用按键来引发
Mouse Movement:使用光标移动来引发,这个返回的是鼠标的增量,注意:当用户快速移动鼠标时,它可能大于1或小于-1。
Joystick Axis:用轴的偏移来引发
Axis(轴)
X axis
就是用X的变化来区分,其实就是图上的的左上角的那个轴的横向移动
Y axis
就是用Y的变化来区分,就是左上角的那个轴的竖向移动
3rd axis
这个就要好好说一下了,3rd其实是LT和RT这个轴,他们两个是一体的,如果获取了这个轴的值,是>0的话则说明LT被按了,如果<0的话则说明RT被按了。而我用的5.5.0F3这个版本,出现了一个问题,就是如果什么按键都不按的话没有3rd轴的值是对的,但是按任意一个键之后,这个值就变成了0.01几了,而我这时候没有按任何LT或者RT,所以为了解决这个问题,我就把死区(Dead)调成了0.02。让LT和RT在不按键的情况下保持为0。
Joy Num
这个就是指从哪个手柄获取反应,如果选择Get Motion From all Joysticks就是从所有的手柄获取反应

比如手柄上的A按键就可以这样:
这里写图片描述

主要按键设置为了joystick button 0,当然也可以joystick 1 button 0这种,如果joystick后面跟了数字,就说明值相应几号手柄

LT可以这样设置:
这里写图片描述

附录:可以填入的button对应名:

标准键(Normal keys):
"a", "b", "c" ... 
数字键(Number keys):
"1", "2", "3", ... 
方向键(Arrow keys):
"up", "down", "left", "right" 
小键盘键(Keypad keys):
"[1]", "[2]", "[3]", "[+]", "[equals]" 
修改键(Modifier keys):
"right shift", "left shift", "right ctrl", "left ctrl", "right alt", "left alt", "right cmd", "left cmd" 
鼠标按钮(Mouse Buttons):
"mouse 0", "mouse 1", "mouse 2", ... 
操纵杆按钮(从任意操纵杆)(Joystick Buttons (from any joystick)) :
"joystick button 0", "joystick button 1", "joystick button 2", ... 
操纵杆按钮(从指定操纵杆)(Joystick Buttons (from a specific joystick)):
 "joystick 1 button 0","joystick 1 button 1","joystick 2 button 0","joystick 2 button 1" ... 
特殊键(Special keys):
"backspace", "tab", "return", "escape", "space", "delete", "enter", "insert", "home", "end", "page up", "page down" 
功能键(Function keys):
"f1", "f2", "f3", ... 
  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值