• 输入控制(Input)

    输入控制(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返回设备是否在当前运行的应用程序支持触摸输入。

    ?