Unity_Input类

Unity的外部输入资源有键盘、鼠标、移动设备的触摸、游戏杆等很多种类。Input类就是用来管理这些的输入值。
Input类查看
可在U3D界面打开进行查看编辑


参数解释
轴(Axes):设置当前项目中的所有输入轴:size为轴的数量。0,1…元素可以对每个轴进行修改。
名称(Name):轴的名称,用于游戏加载界面和脚本中。
描述名称(Descriptive Name):游戏加载界面中,轴的正向按键的详细描述。
描述负名称(Descriptive Negative Name):游戏加载界面中,轴的反向按键的详细描述。
负按钮(Negative Button):该按钮用于在负方向移动轴 (如:左)
正按钮(Positive Button):该按钮用于在正方向移动轴 (如:右)
备选负按钮(Alt Negative Button):备选按钮用于在负方向移动轴(如:a)
备选正按钮(Alt Positive Button):备选按钮用于在正方向移动轴 (如:d)
重力(Gravity):输入复位的速度,仅用于类型为 键/鼠标 的按键。
死亡(Dead):模拟的死区大小, 任何小于该值的输入值(不论正负值)都会被视为0,用于摇杆。
灵敏度(Sensitivity):在单位每秒速度,轴将移向目标值。对于键盘输入,该值越大则响应时间越
快,该值越小则越平滑。对于鼠标输入,设置该值会对鼠标的实际移动距离
按比例缩放。
捕捉(Snap):如果启用该设置,当轴收到反向的输入信号时,轴的数值会立即置为0,仅用于键/鼠
标 输入。
反向(Invert):启用该参数可以让正向按钮发送负值,反向按钮发送正值。
类型(Type):控制轴的输入设备类型。所有的按钮输入都应设置为 键/鼠标 (Key / Mouse) 类型,
对于鼠标移动和滚轮应设为 鼠标移动(Mouse Movement)。摇杆设为摇杆轴 (Joystick
Axis),用户移动窗口设为窗口移动 (Window Movement)。
轴(Axis):连接设备的轴将控制这个轴 。
操作杆(Joy Num):设置使用哪个摇杆。默认是接收所有摇杆的输入。仅用于输入轴和非按键。
U3D的按键系统
Mouse0鼠标左键
Mouse1鼠标右键
Mouse2鼠标中键

GetButtonDown表示鼠标按下才会执行
GetButton表示按住鼠标不放就一直执行
GetButtonUp表示按下鼠标放开后才会执行
GetKey..... 就是对应键盘上的控制
代码中使用
在脚本中,可以通过 Input.GetAxis("组合键名") 函数获取之前设置好的组合键值。
此函数返回值是 -1.0f~1.0f ,通常是在游戏对象做平滑移动时使用。

函数 Input.GetAxisRaw("组合键名") 返回的是 -1、1、0 三个枚举值,主要是用于对键盘控制即时性要求较高的情况。

简单角色控制
角色移动
原理是调整Transform组件的position属性实现移动。Unity使用的是左手坐标系,+Z是前进,-Z是后退。
h = Input.GetAxis("Horizontal");
 v = Input.GetAxis("Vertical");
//向量计算得到一个运动的方向向量
Vector3 moveDir = (Vector3.forward * v) + (Vector3.right * h);
 //Translate( 移动方向 * 速度 * 位移值 * Time.deltaTime, 基础坐标)
 tr.Translate(moveDir.normalized * moveSpeed * Time.deltaTime, Space.Self);
注意:在Update函数里使用Transfrom组件使物体移动的逻辑必须乘上 Time.deltaTime,这样能保证移动速度不受帧率的影响。
角色旋转
使游戏对象以Y轴为基准进行旋转
//以Vector3.up 轴为基准,以rotSpeed速度旋转
tr.Rotate(Vector3.up * Time.deltaTime * rotSpeed * Input.GetAxis("Mouse X"));



猜你喜欢

转载自blog.csdn.net/sinat_37888718/article/details/80326085