旧版输入系统的接口。
注意: Input
类是旧版输入管理器功能的一部分,不建议在新项目中使用。以下提供的文档是为了支持使用旧版输入管理器和 Input 类的旧项目。对于新项目,您应该使用输入系统包。(了解更多)
KeyCode 仅当在 输入管理器设置 中启用“使用物理键”时才映射到物理键,否则它会映射到布局和平台相关的键映射。从 2022.1 开始,“使用物理键”默认启用。
使用此类读取在 传统游戏输入 中设置的轴,以及访问移动设备上的多点触控/加速度计数据。
要读取轴,请使用 Input.GetAxis 和以下默认轴之一:“Horizontal”和“Vertical”映射到操纵杆、A
、W
、S
、D
和箭头键。“Mouse X”和“Mouse Y”映射到鼠标增量。“Fire1”、“Fire2”、“Fire3”映射到Ctrl
、Alt
、Cmd
键和三个鼠标或操纵杆按钮。可以添加新的输入轴。有关此内容,请参阅 输入管理器。
如果您正在将输入用于任何类型的移动行为,请使用 Input.GetAxis。它为您提供了平滑且可配置的输入,可以映射到键盘、操纵杆或鼠标。仅对类似于操作的事件使用 Input.GetButton。不要将其用于移动。 Input.GetAxis 将使脚本代码更小更简单。
注意: Input 标志在 Update
之前不会重置。您应该在 Update
循环中进行所有 Input 调用。
其他资源:KeyCode,其中列出了所有按键、鼠标和操纵杆选项。
移动设备
iOS 和 Android 设备能够同时跟踪多个手指触摸屏幕。您可以使用 Input.touches 属性数组访问上帧触摸屏幕的每个手指的状态数据。
当设备移动时,其加速度计硬件会报告沿三维空间中的三个主要轴的线性加速度变化。您可以使用此数据来检测设备的当前方向(相对于地面)以及该方向的任何即时变化。
每个轴上的加速度由硬件直接报告为 G 力值。值 1.0 表示沿给定轴大约 +1g 的载荷,而值 -1.0 表示 -1g。如果您将设备直立(主页按钮在底部)放在您面前,则 X 轴沿右侧为正,Y 轴沿垂直向上为正,Z 轴沿朝向您为正。
您可以使用 Input.acceleration 属性获取加速度计读数。您还可以使用 Input.deviceOrientation 属性获取设备在三维空间中方向的离散评估。如果您想在用户旋转设备以以不同方式握住设备时创建游戏行为,则检测方向变化可能很有用。
请注意,加速度计硬件可以每帧轮询多次。要访问自上一帧以来的所有加速度计样本,您可以使用 Input.accelerationEvents 属性数组。当重建玩家动作、将加速度数据馈送到预测器或实现其他精确运动分析时,这可能很有用。
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { public void Update() { if (Input.GetButtonDown("Fire1")) { Debug.Log(Input.mousePosition); } } }
此组件与用于将 UI 纹理和图像绘制到屏幕上的旧版方法相关。您应该改用 UI 系统。这与 IMGUI 系统无关。
acceleration | 设备在三维空间中测量的最后一个线性加速度。(只读) |
accelerationEventCount | 上一帧发生的加速度测量的数量。 |
accelerationEvents | 返回上一帧发生的加速度测量的列表。(只读)(分配临时变量)。 |
anyKey | 当前是否按住任何键或鼠标按钮?(只读) |
anyKeyDown | 当用户第一次按下任何键或鼠标按钮时返回 true。(只读) |
backButtonLeavesApp | 后退按钮是否应该退出应用程序? |
compass | 用于访问指南针的属性(仅限手持设备)。(只读) |
compensateSensors | 此属性控制是否应针对屏幕方向补偿输入传感器。 |
compositionCursorPos | IME 用于打开窗口的当前文本输入位置。 |
compositionString | 用户正在键入的当前 IME 组合字符串。 |
deviceOrientation | 操作系统报告的设备物理方向。(只读) |
gyro | 返回默认陀螺仪。 |
imeCompositionMode | 控制启用和禁用 IME 输入组合。 |
imeIsSelected | 用户是否选择了 IME 键盘输入源? |
inputString | 返回此帧输入的键盘输入。(只读) |
location | 用于访问设备位置的属性(仅限手持设备)。(只读) |
mousePosition | 以像素坐标表示的当前鼠标位置。(只读)。 |
mousePositionDelta | 以像素坐标表示的当前鼠标位置增量。(只读)。 |
mousePresent | 指示是否检测到鼠标设备。 |
mouseScrollDelta | 当前鼠标滚轮增量。(只读) |
multiTouchEnabled | 指示系统是否处理多点触控的属性。 |
penEventCount | 返回可以通过调用 [[GetPenEvent()]] 访问的已排队笔事件的数量。 |
simulateMouseWithTouches | 启用/禁用使用触摸模拟鼠标。默认情况下,此选项已启用。 |
stylusTouchSupported | 当设备或平台支持触控笔触控时返回 true。 |
touchCount | 触摸次数。保证在整帧中不会改变。(只读) |
touches | 返回表示上一帧所有触摸状态的对象列表。(只读)(分配临时变量)。 |
touchPressureSupported | 布尔值,允许用户检查是否支持触摸压力。 |
touchSupported | 返回应用程序当前运行的设备是否支持触摸输入。 |
ClearLastPenContactEvent | 清除最后一个存储的笔事件。调用此函数可能会影响 UIToolKit 元素的事件处理。 |
GetAccelerationEvent | 返回上一帧发生的特定加速度测量。(不分配临时变量)。 |
GetAxis | 返回由 axisName 标识的虚拟轴的值。 |
GetAxisRaw | 返回由 axisName 标识的虚拟轴的值,不应用任何平滑滤波。 |
GetButton | 当由 buttonName 标识的虚拟按钮被按下时返回 true。 |
GetButtonDown | 在用户按下由 buttonName 标识的虚拟按钮的帧期间返回 true。 |
GetButtonUp | 在用户释放由 buttonName 标识的虚拟按钮的第一帧返回 true。 |
GetJoystickNames | 检索与输入管理器中配置的轴索引相对应的输入设备名称列表。 |
GetKey | 当用户按住由名称标识的键时返回 true。 |
GetKeyDown | 在用户开始按下由名称标识的键的帧期间返回 true。 |
GetKeyUp | 在用户释放由名称标识的键的帧期间返回 true。 |
GetLastPenContactEvent | 返回最后一个存储的笔抬起或按下事件的 PenData。 |
GetMouseButton | 返回给定的鼠标按钮是否被按下。 |
GetMouseButtonDown | 在用户按下给定的鼠标按钮的帧期间返回 true。 |
GetMouseButtonUp | 在用户释放给定的鼠标按钮的帧期间返回 true。 |
GetPenEvent | 返回笔事件队列中给定索引处的笔事件的 PenData。 |
GetTouch | 调用 Input.GetTouch 以获取 Touch 结构体。 |
IsJoystickPreconfigured | 确定 Unity 是否已预配置特定的操纵杆模型。(仅限 Linux)。 |
ResetInputAxes | 重置所有输入。在 ResetInputAxes 之后,所有轴都返回 0,所有按钮在一帧内都返回 0。 |
ResetPenEvents | 清除笔事件队列。 |