Version: 2023.2

Input

class in UnityEngine

切换到手册

描述

访问输入系统的接口。

KeyCode maps to physical keys only if "Use Physical Keys" is enabled in Input Manager settings, otherwise it maps to layout and platform dependent key mapping. Starting from 2022.1 "Use Physical Keys" is enabled by default.

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

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

If you are using input for any kind of movement behaviour use Input.GetAxis. It gives you smoothed and configurable input that can be mapped to a keyboard, joystick or mouse. Use Input.GetButton for action-like events only. Do not use it for movement. Input.GetAxis will make the script code smaller and simpler.

Note: Input flags are not reset until Update. You should make all the Input calls in the Update Loop.

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

**移动设备:**

iOS and Android devices are capable of tracking multiple fingers touching the screen simultaneously. You can access data on the status of each finger touching screen during the last frame by using the Input.touches property array.

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

硬件将沿每个轴的加速度直接报告为重力值。 值 1.0 表示沿给定轴约 +1g 的荷载,值 -1.0 表示 -1g。 当将设备竖直握住(主按钮位于底部)举到您正前方时, 右侧为正 X 轴,上方为正 Y 轴,指向您的方向为正 Z 轴。

You can use the Input.acceleration property to get the accelerometer reading. You can also use the Input.deviceOrientation property to get a discrete evaluation of the device's orientation in three-dimensional space. Detecting a change in orientation can be useful if you want to create game behaviors when the user rotates the device to hold it differently.

Note that the accelerometer hardware can be polled more than once per frame. To access all accelerometer samples since the last frame, you can use the Input.accelerationEvents property array. This can be useful when reconstructing player motions, feeding acceleration data into a predictor, or implementing other precise motion analysis.

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).
mousePositionDeltaThe current mouse position delta in pixel coordinates. (Read Only).
mousePresent指示是否检测到鼠标设备。
mouseScrollDelta当前的鼠标滚动增量。(只读)
multiTouchEnabled该属性指示系统是否处理多点触控。
penEventCountReturns the number of queued pen events that can be accessed by calling [[GetPenEvent()]].
simulateMouseWithTouches启用/禁用通过触摸模拟鼠标操作。默认情况下,该选项已启用。
stylusTouchSupported当设备或平台支持 Stylus Touch 时,返回 true。
touchCount触摸次数。保证在整个帧期间不会更改。(只读)
touches返回表示上一帧中所有触摸状态的对象列表。(只读)(分配临时变量)。
touchPressureSupported供用户检查是否支持触摸压力的 bool 值。
touchSupported返回当前正在运行应用程序的设备是否支持触摸输入。

静态函数

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