输入控制(Input)

输入系统的接口,用来监视我们所有的硬件输入设备(麦克风除外)。

Input 这个类能够读取输入管理器设置的按键,以及访问移动设备的多点触控或加速感应数据。

Input 这个类给我们提供的属性和方法全是静态的。


键盘控制说明
GetKey当用户按下由name名称确定的按键时,返回 true。
GetKeyDown当用户按下指定名称的按键时的那一帧返回 true。
GetKeyUp在用户释放给定名字的按键的那一帧返回 true。

示例1:

  1. using UnityEngine;
  2. using System.Collections;
  3. public class ExampleClass : MonoBehaviour
  4. {
  5. public void Update()
  6. {
  7. // 当按下 数字键1 的那一帧,在控制台输出鼠标在屏幕上的位置。
  8. if(Input.GetKeyDown(KeyCode.Alpha1))
  9. {
  10. Debug.Log(Input.mousePosition);
  11. }
  12. }
  13. }

示例2:

  1. using UnityEngine;
  2. using System.Collections;
  3. public class ExampleClass : MonoBehaviour
  4. {
  5. public void Update()
  6. {
  7. // 当按下a键的那一帧,在控制台输出鼠标在屏幕上的位置。
  8. if(Input.GetKeyDown("a"))
  9. {
  10. Debug.Log(Input.mousePosition);
  11. }
  12. }
  13. }

鼠标的控制说明
GetMouseButton当指定的鼠标按钮被按下时返回 true。
GetMouseButtonDown在用户按下指定鼠标按键的那一帧返回 true。
GetMouseButtonUp在用户释放指定鼠标按键的那一帧返回 true。
数字键 0 表示鼠标左键;数字键 1 表示鼠标右键;数字键 2 表示鼠标中键。

示例:

  1. using UnityEngine;
  2. using System.Collections;
  3. public class ExampleClass : MonoBehaviour
  4. {
  5. public void Update()
  6. {
  7. // 当按下鼠标左键的那一帧,在控制台输出鼠标在屏幕上的位置。
  8. if(Input.GetMouseButtonDown(0))
  9. {
  10. Debug.Log(Input.mousePosition);
  11. }
  12. }
  13. }

轴值的判断说明
GetAxis根据 axisName 名称返回虚拟输入轴中的值。
GetAxisRaw通过 axisName 名称返回一个不使用平滑滤波器的虚拟轴值。
默认轴:HorizontalVertical 映射于控制杆、A、W、S、D 和箭头键(方向键)。Mouse XMouse Y 映射于鼠标。

示例1:

  1. using UnityEngine;
  2. using System.Collections;
  3. public class ExampleClass : MonoBehaviour {
  4. public float speed = 10.0F;
  5. public float rotationSpeed = 100.0F;
  6. void Update() {
  7. float translation = Input.GetAxis("Vertical") * speed;
  8. float rotation = Input.GetAxis("Horizontal") * rotationSpeed;
  9. translation *= Time.deltaTime;
  10. rotation *= Time.deltaTime;
  11. transform.Translate(0, 0, translation);
  12. transform.Rotate(0, rotation, 0);
  13. }
  14. }

示例2:

  1. using UnityEngine;
  2. using System.Collections;
  3. public class ExampleClass : MonoBehaviour
  4. {
  5. public float horizontalSpeed = 2.0F;
  6. public float verticalSpeed = 2.0F;
  7. void Update() {
  8. float h = horizontalSpeed * Input.GetAxis("Mouse X");
  9. float v = verticalSpeed * Input.GetAxis("Mouse Y");
  10. transform.Rotate(v, h, 0);
  11. }
  12. }

功能键说明
GetButton当由 buttonname 确定的虚拟按键被按下时,返回 true。
GetButtonDown在用户按下由 buttonName 名称确定的虚拟按钮的那一帧返回true。
GetButtonUp在用户释放根据 buttonName 名称的虚拟按钮时返回 true。

示例:

  1. using UnityEngine;
  2. using System.Collections;
  3. public class ExampleClass : MonoBehaviour
  4. {
  5. public GameObject projectile;
  6. void Update()
  7. {
  8. if (Input.GetButtonDown("Fire1"))
  9. Instantiate(projectile, transform.position, transform.rotation);
  10. }
  11. }
其他方法说明
ResetInputAxes在一帧中重置所有的输入,重置输入指令之后所有的方向轴都被设置为 0 并且所有的按键都被设置为 0。
GetTouch返回一个存放触摸信息的对象(不允许分配临时变量)。
GetAccelerationEvent返回上一帧发生的指定的加速度测量(不允许分配临时变量)。
GetJoystickNames返回一个用来描述已连接的摇杆的字符串数组。
IsJoystickPreconfigured确定Unity是否一个特定的操纵杆模型已预先配置。(仅Linux)。
静态变量说明
acceleration上一次测量的设备在三维空间中的线性加速度(只读)。
accelerationEventCount上一帧发生的所测量的的加速度次数。
accelerationEvents返回上一帧测量的加速度数据列表(只读)(分配临时变量)
anyKey当前是否有任意键或鼠标键被按下(只读)?
anyKeyDown在用户按下任意按键或鼠标按键首帧返回true(只读)。
compass访问指南针的属性(仅手持设备)。
compensateSensors该属性控制输入传感器在屏幕方向的补偿。
compositionCursorPos当前文本输入位置,使用于IME来打开窗口。
compositionString当前用户正在输入的IME组合字符串。
deviceOrientation由操作系统所报告的设备的物理方向(只读)。
gyro返回默认的陀螺仪。
imeCompositionMode控制IME输入组合的启用和禁用。
imeIsSelected用户是否已选择IME键盘输入源?
inputString返回在这一帧的键盘输入(只读)
location用于访问设备位置信息(仅手持设备)(只读)。
mousePosition在屏幕坐标空间当前鼠标的位置(只读)。
mouseScrollDelta当前鼠标滚动增量(只读)。
multiTouchEnabled指示系统是否启用多点触控。
simulateMouseWithTouches启用/禁用鼠标模拟触摸。默认情况下启用此项。
touchCount触摸的数量。每一帧之内都一定不会改变(只读)
touches返回代表上一帧所有的触摸状态的对象列表(只读)(分配临时变量)
touchSupported返回设备是否在当前运行的应用程序支持触摸输入。

?