Unity学习日志_信息输入管理简介
Input类:
鼠标输入:
在桌面系统的游戏中,鼠标输入是最基本的输入方式之一。游戏中的许多操作都需要鼠标操作来完成。
Input类中关于鼠标输入的静态变量:
mousePosition | 鼠标当前的像素坐标位置(屏幕坐标系)。(只读) |
---|---|
mousePresent | 指示是否检测到鼠标设备。 |
mouseScrollDelta | 当前的鼠标滚动增量。(只读) |
Input类中关于鼠标输入的静态方法:
GetAxis | 返回由 axisName 标识的虚拟轴的值。 |
---|---|
GetAxisRaw | 返回由 axisName 标识的虚拟轴的值(未应用平滑过滤)。 |
GetMouseButton | 返回是否按下了给定的鼠标按钮。 |
GetMouseButtonDown | 在用户按下给定鼠标按钮的帧期间返回 true。 |
GetMouseButtonUp | 在用户释放给定鼠标按钮的帧期间返回 true。 |
键盘输入:
键盘事件也是桌面系统中的基本输入事件。
Input类中关于键盘输入的静态变量:
何为IME输入?
简单来说就是输入法,某些语言使用复杂的输入方法 - 需要打开窗口来插入字符(比如中文)。 通常,这在玩游戏时无法使用,因为游戏可能只将击键解释为游戏输入,而不是文本。 默认情况下,Unity 将在文本字段中启用 IME 合成, 其他情况则禁用 IME 合成。
imeCompositionMode | 控制 IME 输入组合的启用和禁用。 |
---|---|
imeIsSelected | 用户是否选择了 IME 键盘输入源? |
inputString | 返回该帧输入的键盘输入。(只读) |
Input类中关于键盘输入的静态方法:
GetKey | 在用户按下 name 标识的键时返回 true。 |
---|---|
GetKeyDown | 在用户开始按下 name 标识的键的帧期间返回 true。 |
GetKeyUp | 在用户释放 name 标识的键的帧期间返回 true。 |
GetAxis | 返回由 axisName 标识的虚拟轴的值。 |
GetAxisRaw | 返回由 axisName 标识的虚拟轴的值(未应用平滑过滤)。 |
KeyCode示例:
字母键A:KeyCode.A;
数字键0:KeyCode.Alpha0;
功能键F1:KeyCode.F1;
退格键:KeyCode.Backspace;
回车键:KeyCode.Return;
空格键:KeyCode.Space;
退出键:KeyCode.Esc;
Tab键:KeyCode.Tab;
上箭头方向键:KeyCode.UpArrow;
左Shift键:KeyCode.LeftShift;
左Alt键:KeyCode.LeftAlt;
左Ctrl键:KeyCode.LeftCtrl;
外设输入:
Unity还可以处理摇杆,游戏手柄,方向盘等标准游戏外设的输入。
Input类中关于外设输入的静态方法:
GetAxis | 返回由 axisName 标识的虚拟轴的值。 |
---|---|
GetAxisRaw | 返回由 axisName 标识的虚拟轴的值(未应用平滑过滤)。 |
GetButton | 当按住 buttonName 标识的虚拟按钮时,返回 true。 |
GetButtonDown | 在用户按下由 buttonName 标识的虚拟按钮的帧期间返回 true。 |
GetButtonUp | 在用户释放由 buttonName 标识的虚拟按钮的第一帧返回 true。 |
GetJoystickNames | 返回描述连接的游戏杆的字符串数组。 |
虚拟按键需要在Input Manager中配置,将外设的输入信息映射给虚拟按键或者输入轴后就可以在脚本中使用了。
移动设备输入:
在IOS或者Android系统中,操作都是通过触摸来完成的。input类提供了对触摸操作的方法和变量。
Input类中关于移动设备输入的静态变量:
multiTouchEnabled | 该属性指示系统是否处理多点触控。 |
---|---|
simulateMouseWithTouches | 启用/禁用通过触摸模拟鼠标操作。默认情况下,该选项已启用。 |
stylusTouchSupported | 当设备或平台支持 Stylus Touch 时,返回 true。 |
touchCount | 触摸次数。保证在整个帧期间不会更改。(只读) |
touches | 返回表示上一帧中所有触摸状态的对象列表。(只读)(分配临时变量)。 |
touchPressureSupported | 供用户检查是否支持触摸压力的 bool 值。 |
touchSupported | 返回当前正在运行应用程序的设备是否支持触摸输入。 |
Input类中关于移动设备输入的静态方法:
GetTouch | 调用 Input.GetTouch 以获取 Touch 结构。 |
---|---|
Touch类:
变量:
altitudeAngle | 0 弧度值指示触笔平行于表面,pi/2 指示垂直。 |
---|---|
azimuthAngle | 0 弧度值指示触笔指向沿着设备 X 轴方向。 |
deltaPosition | 自上次更改以来的位置增量。 |
deltaTime | 自记录的 Touch 值上次更改以来经过的时间。 |
fingerId | 触摸的唯一索引。 |
maximumPossiblePressure | 平台的最大可能压力值。如果 Input.touchPressureSupported 返回 false,此属性的值将始终为 1.0f。 |
phase | 描述触摸阶段。 |
position | 触摸的位置(像素坐标)。 |
pressure | 当前应用于触摸的压力大小。1.0f 被视为平均触摸压力。如果 Input.touchPressureSupported 返回 false,此属性的值将始终为 1.0f。 |
radius | 触摸半径的估计值。加上 radiusVariance 可获得最大触摸大小,减去它可获得最小触摸大小。 |
radiusVariance | 此值确定触摸半径的精度。半径加上此值可获得最大触摸大小,减去它可获得最小触摸大小。 |
rawPosition | 用于触摸的原始位置。 |
tapCount | 点击次数。 |
type | 用于指示触摸是 Direct、Indirect(或远程)还是 Stylus 类型的值。 |
TouchPhase状态:
Began | 手指触摸了屏幕。 |
---|---|
Moved | 手指在屏幕上进行了移动。 |
Stationary | 手指正在触摸屏幕但尚未移动。 |
Ended | 从屏幕上抬起了手指。这是最后一个触摸阶段。 |
Canceled | 系统取消了对触摸的跟踪。 |
自定义输入:
InputManager:
- Name:输入轴名字,用于游戏启动时的配置页面显示和脚本访问。
- Descriptive Name:轴正按键的描述,在游戏启动页面显示。
- Descriptive Negative Name:轴负按键的描述,用于游戏启动页面的显示。
- Negative Button:轴负按键对应的物理按键。
- Positive Button:轴正按键对应的物理按键。
- Alt Negative Button:备选负按键。
- Alt Positive Button:备选正按键。
- Gravity:输入的复位速度,仅用于键鼠按键。
- Dead:小于该值的任何值都被视为0,用于摇杆。
- Sensitivity:灵敏度。
- Snap:勾选该值时,当轴收到负按键的输入信号时,轴的数值会被立刻设置为0。仅用于键鼠输入。
- Invert:值反转。
- Type:输入轴类型。
- Axis:要映射的设备输入轴。