Version: 2020.3

Input

class in UnityEngine

切换到手册

描述

访问输入系统的接口。

使用该类来读取传统游戏输入中设置的轴,以及访问移动设备上的多点触控/加速度计数据。

要读取轴,请将 Input.GetAxis 与以下默认轴之一配合使用: “Horizontal”和“Vertical”映射到游戏杆(DDDD 和箭头键)。 “Mouse X”和“Mouse Y”映射到鼠标增量。 “Fire1”、“Fire2”、“Fire3”映射到 CmdCmdCmd 键和三个鼠标或游戏杆按钮。 可以添加新输入轴。请参阅输入管理器以了解相关信息。

若要使用输入来进行任何类型的移动行为,请使用 Input.GetAxis。 它为您提供平滑且可配置的输入 - 可以映射到键盘、游戏杆或鼠标。 请将 Input.GetButton 仅用于事件等操作。不要将它用于移动操作。Input.GetAxis 将使脚本代码更简洁。

另请注意,执行 Update 前,不会重置 Input 标志。建议在 Update 循环中进行所有的 Input 调用。

另请参阅:KeyCode,其中列出了所有的按键、鼠标和游戏杆选项。

移动设备:

iOS 和 Android 设备能够跟踪多根手指同时触摸屏幕的操作。 您可以通过访问 Input.touches 属性数组来访问最后一帧期间每根手指触摸屏幕的状态数据。

设备移动时,其加速度计硬件将报告设备沿三维空间中的三个主轴的线性加速度变化。 您可以使用该数据检测设备的当前方向(相对于地面)以及该方向上的任何即时更改。

硬件将沿每个轴的加速度直接报告为重力值。 值 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 Back 按钮是否应该退出应用程序?仅适用于 Android、Windows Phone 或 Windows 平板电脑。
compass用于访问罗盘的属性(仅限手持设备)。(只读)
compensateSensors该属性控制是否应该对输入传感器补偿屏幕方向。
compositionCursorPosIME 用于打开窗口的当前文本输入位置。
compositionString用户键入的当前 IME 组合字符串。
deviceOrientation操作系统报告的设备的物理方向。(只读)
gyro返回默认陀螺仪。
imeCompositionMode控制 IME 输入组合的启用和禁用。
imeIsSelected用户是否选择了 IME 键盘输入源?
inputString返回该帧输入的键盘输入。(只读)
location用于访问设备位置的属性(仅限手持设备)。(只读)
mousePositionThe current mouse position in pixel coordinates. (Read Only).
mousePresent指示是否检测到鼠标设备。
mouseScrollDelta当前的鼠标滚动增量。(只读)
multiTouchEnabled该属性指示系统是否处理多点触控。
simulateMouseWithTouches启用/禁用通过触摸模拟鼠标操作。默认情况下,该选项已启用。
stylusTouchSupported当设备或平台支持 Stylus Touch 时,返回 true。
touchCount触摸次数。保证在整个帧期间不会更改。(只读)
touches返回表示上一帧中所有触摸状态的对象列表。(只读)(分配临时变量)。
touchPressureSupported供用户检查是否支持触摸压力的 bool 值。
touchSupported返回当前正在运行应用程序的设备是否支持触摸输入。

静态函数

GetAccelerationEvent返回上一帧期间进行的特定加速度测量。(不分配临时变量)。
GetAxis返回由 axisName 标识的虚拟轴的值。
GetAxisRaw返回由 axisName 标识的虚拟轴的值(未应用平滑过滤)。
GetButton当按住 buttonName 标识的虚拟按钮时,返回 true。
GetButtonDown在用户按下由 buttonName 标识的虚拟按钮的帧期间返回 true。
GetButtonUp在用户释放由 buttonName 标识的虚拟按钮的第一帧返回 true。
GetJoystickNames获取与在输入管理器中配置的轴的索引对应的输入设备名称的列表。
GetKey在用户按下 name 标识的键时返回 true。
GetKeyDown在用户开始按下 name 标识的键的帧期间返回 true。
GetKeyUp在用户释放 name 标识的键的帧期间返回 true。
GetMouseButton返回是否按下了给定的鼠标按钮。
GetMouseButtonDown在用户按下给定鼠标按钮的帧期间返回 true。
GetMouseButtonUp在用户释放给定鼠标按钮的帧期间返回 true。
GetTouch调用 Input.GetTouch 以获取 Touch 结构。
IsJoystickPreconfigured确定 Unity 是否已预先配置某个特定的游戏杆模型。(仅限 Linux)。
ResetInputAxes重置所有输入。调用 ResetInputAxes 后,所有轴和所有按钮都恢复为 0,并且持续一帧时长。