参考书籍:Unity5.X 从入门到精通
Input Manager(输入管理器)
0.1 Input类 成员变量
成员变量 | 描述 | |
---|
acceleration | 获取设备当前在三维空间中的线性加速度 | 只读 |
accelerationEventCount | 得到上一帧的加速度参数数据长度 | |
accelerationEvents | 得到上一帧的加速度数据列表(分配临时变量) | 只读 |
anyKey | 是否有按键按下 | 只读 |
anyKeyDown | 当有任意按键按下的第一帧返回true | 只读 |
compass | 罗盘属性(仅支持手持设备) | 只读 |
compensateSensors | 是否根据屏幕方向补偿感应器 | |
compositionCursorPos | 当前IME组合字符串的光标位置 | |
compositionString | 用户通过IME输入端组合字符串 | |
deviceOrientation | 操作系统提供的设备方向(只读) | |
gyro | 返回默认的陀螺仪 | |
imeCompositionMode | 设置IME组合模式 | |
imelsSelected | 当前是否启用了IME输入键盘 | |
inputString | 得到当前帧的键盘输入字符串 | 只读 |
location | 设备当前的位置属性(仅支持手持设备) | 只读 |
mousePosition | 鼠标位置的像素坐标 | 只读 |
multiTouchEnabled | 系统是否支持多点触摸 | |
simulateMouseWithtouches | 屏幕触控模拟鼠标点击 | |
touchCount | 当前所有触摸状态列表长度 | 只读 |
touches | 当前所有触摸状态列表(分配临时变量) | 只读 |
touchSupported | 返回应用程序正在运行的设备是否支持触摸输入 | |
0.2 Input类 成员函数
成员函数 | 描述 |
---|
GetaccelerationEvent() | 返回指定的上一帧加速度测量数据(不分配临时变量) |
GetAxis() | 根据名称得到虚拟输入轴的值 |
GetAxisRaw() | 根据名称得到虚拟坐标轴的未使用平滑过滤的值 |
GetButton() | 如果指定名称的虚拟按键被按下,返回true |
GetButtonDown() | 指定名称的虚拟按键被按下的那一帧,返回true |
GetButtonUp() | 指定名称的虚拟按键被松开的那一帧,返回true |
GetJoystickNames() | 返回当前连接的所有摇杆的名称数组 |
GetKey() | 当指定按键被按下时返回true |
GetKeyDown() | 当指定按键被按下的那一帧返回true |
GetKeyUp() | 当指定按键被松开的那一帧返回true |
GetMouseButton() | 指定的鼠标按键是否按下 |
GetMouseButtonDown() | 指定的鼠标按键按下的那一帧返回true |
GetMouseButtonUp() | 指定的鼠标按键松开的那一帧返回true |
GetTouch() | 返回指定的触摸数据对象(不分配临时变量) |
IsJoystickPreconfigured | 配置默认的摇杆输出(只限Linux) |
ResetInputAxes | 重置所有输入,调用该方法后所有方向轴 |
- Key:与物理按键对应。可通过按键名称或按钮编码
KeyCode
获取输入状态。 - Button:输入管理器(Input Manager)中定义的虚拟按键。
- Axis:模拟平滑变化的输入,例如摇杆、方向盘。
一、鼠标输入
1.1 鼠标输入 成员变量
成员变量 | 描述 | |
---|
mousePosition | 得到当前鼠标位置 | Vector3 |
1.2 鼠标输入 成员方法
成员函数 | 描述 |
---|
GetMouseButtonDown() | 鼠标按键按下的第一帧返回true |
GetMouseButtonUp() | 鼠标按键松开的第一帧返回true |
GetMouseButton() | 鼠标按键按下期间一直返回true |
GetAxis("Mouse X") | 得到一帧内鼠标在水平方向的移动距离 |
GetAxis("Mouse Y") | 得到一帧内鼠标在垂直方向的移动距离 |
Unity中,鼠标位置用屏幕像素坐标表示,屏幕左下角为坐标原点(0, 0),右上角为(Screen.width, Screen.height)
- Screen.width:屏幕分辨率的宽度
- Screen.height:屏幕分辨率的高度
mousePosition
:Vector3类型 (x, y, z)
2.1 键盘输入 成员方法
成员方法 | 描述 |
---|
GetKey() | 按键按下期间返回true |
GetKeyDown() | 按键按下的第一帧返回true |
GetKeyUp() | 按键松开的第一帧返回true |
GetAxis("Horizontal") 和GetAxis("Vertical") | 用方向键或W、A、S、D键来模拟-1到1的平滑输入 |
2.2 常用按键名与KeyCode编码
键盘按键 | Name | KeyCode |
---|
字母键A、B、C…Z | a、b、c…z | A 、B 、C …Z |
数字键0~9 | 0~9 | Alpha0 ~Alpha9 |
功能键F1~F12 | f1~f12 | F1 ~F12 |
退格键 | backspace | Backspace |
回车键 | return | Return |
空格键 | space | Space |
退出键 | esc | Esc |
Tab键 | tab | Tab |
上下左右方向键 | up、down、left、right | UpArrow 、DownArrow 、LeftArrow 、RightArrow |
左、右Shift键 | left shift、right shift | LeftShift 、RightShift |
左、右Alt键 | left alt、right alt | LeftAlt 、RightAlt |
左、右Ctrl键 | left ctrl、right ctrl | LeftCtrl 、RightCtrl |
三、游戏外设输入
3.1 外设输入 成员方法
成员方法 | 描述 |
---|
GetAxis() | 得到输入轴的值 |
GetAxisRaw() | 得到未经平滑处理的输入轴的数值 |
GetButton() | 虚拟键按下期间一直返回true |
GetButtonDown() | 虚拟键按下的第一帧返回true |
GetButtonUp() | 虚拟键松开的第一帧返回true |
- Unity默认为用户创建 Fire1、Fire2、Fire3、Jump以及虚拟轴Horizontal和Vertical。
四、移动设备的输入
IOS与Android系统中的操作通过触摸完成。(以前是按键)
4.1 移动端输入 成员变量
成员变量 | 描述 | |
---|
multiTouchEnabled | 系统是否支持多点触摸 | |
simulateMouseWithtouches | 屏幕触控模拟鼠标点击 | |
touchCount | 当前所有触摸状态列表长度 | 只读 |
touches | 当前所有触摸状态列表(分配临时变量) | 只读 |
touchSupported | 返回应用程序正在运行的设备是否支持触摸输入 | |
4.2 移动端输入 成员方法
成员方法 | 描述 |
---|
GetTouch() | 返回指定的触摸数据对象(不分配临时变量) |
4.3 结构体Touch的变量
通过GetTouch()
或者touches
可访问移动设备的触摸数据,数据保存在Touch的结构体中,结构体Touch的变脸如下所示:
变量 | 说明 |
---|
fingerld | 触摸数据的唯一索引id |
position | 触摸的位置 |
deltaPosition | 触摸位置的改变量 |
deltaTime | 距离上次触摸数据变化的时间间隔 |
taoCount | 单击计数 |
phase | 触摸的状态描述 |
通过吊桶phase
可访问当前触摸状态,状态如下所示:
变量 | 说明 |
---|
Began | 手指刚触碰屏幕 |
Moved | 手指在屏幕上移动 |
Stationary | 手指触碰屏幕并从上一帧起没有移动 |
Ended | 手指离开屏幕 |
Cancled | 系统取消了跟踪触摸 |
创建自定义虚拟按键:
- 打开Unity菜单栏 -> Editor -> Project Setting
- 选择Input分栏
默认情况下Unity创建了18个输入轴(Axes),具体参数如下:
参数 | 说明 |
---|
Axes | 包含当前工程所有定义的轴,Size为轴的数量 |
Name | 输入轴名称,用于游戏启动时的配置见面和脚本访问 |
Descriptive Name | 轴的正按键的描述(在游戏启动界面中显示) |
Descriptive Negative Name | 轴的负按的键描述(在游戏启动界面中显示) |
Negative Button | 轴的负按键对应的物理按键 |
Positive Button | 轴的正按键对应的物理按键 |
Alt Negative Button | 轴的负按键对应的备选物理按键 |
Alt Positive Button | 轴的正按键对应的备选物理按键 |
Gravity | 输入的复位速度,仅用于类型为键、鼠标的按键 |
Dead | 小于该值的任何输入值(不论正负值)都会视为0,用于摇杆 |
Sensitivity | 灵敏度,对于键盘输入,该值越大则响应时间越快,该值越小越平滑。对于鼠标输入,设置该值会对鼠标的实际移动距离按比例缩放 |
Snap | 如果该值为true,当轴收到负按键的输入信号时,轴的数值会立即置为0,仅用于键/鼠标输入 |
Invert | 如果该值为true,正按键会发送负值,负按键会发送正值 |
Type | 输入轴的类型,按键对应Key/Mouse类型,鼠标移动和滚轮滑动对应Mouse Movement类型,摇杆设置为Joystick Axis,窗口移动消息设置为WIndow Movement |
Axis | 要映射的设备输入轴(摇杆、鼠标、手柄等) |
Joy Num | 设置使用哪个摇杆作为消息输入,默认接受所有摇杆的输入,仅用于输入轴和非按键输入 |
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。