Unity入门之重要组件和API(4) : Input

前言

Input类主要处理用户输入设备相关操作;输入设备包括鼠标、键盘、触屏、手柄、陀螺仪(重力感应)。

1.鼠标

1.1鼠标在屏幕的位置

print(Input.mousePosition);

1.2检测鼠标输入

0-左键  1-右键  2-中键
if (Input.GetMouseButtonDown(0)) {
	print("鼠标按下");
}
if (Input.GetMouseButtonUp(0)) {
	print("鼠标抬起");
}
if (!Input.GetMouseButton(0)) {
	print("鼠标长按");
}

1.3鼠标中键滚轮

返回值Vector2中的x值:横向滚动 
返回值Vector2中的y值:纵向滚动  -1-往下滚 0-没有滚 1-往上滚
print(Input.mouseScrollDelta);

2.键盘

2.1检测键盘输入

键盘按下
if (Input.GetKeyDown(KeyCode.A)) {
	print("A键按下");
}

键盘抬起
if (Input.GetKeyUp(KeyCode.A)){
	print("A键抬起");
}

键盘长按
if (Input.GetKey(KeyCode.A)) {
	print("A键长按");
}

2.2重载方法

传入的字符串只能是小写字符串
if (Input.GetKeyDown("a")) {
	print("A键按下");
}

3.虚拟轴

3.1检测键盘

键盘AD按下时,返回 -1到1之间的值
print(Input.GetAxis("Horizontal"));

键盘SW按下时,返回 -1到1之间的值
print(Input.GetAxis("Vertical"));

3.2检测鼠标

鼠标横向移动时,返回 -1到1的值
print(Input.GetAxis("Mouse X"));

鼠标竖向移动时,返回 -1到1的值
print(Input.GetAxis("Mouse Y"));

3.3 GetAxisRaw和GetAxis的区别

两个函数用法相同,但是返回值不同。GetAxisRaw只返回-1、0、1,GetAxis返回-1、0、1之间变化的值。

4.触屏

4.1检测触屏

if (Input.touchCount > 0) {
	Touch t1 = Input.touches[0];

	[位置]
	print(t1.position);
	[相对上次位置的变化]
	print(t1.deltaPosition);
}

4.2多点触摸开关

开启多点触摸
Input.multiTouchEnabled = true;

5.手柄

5.1获取所有按键名字

string[] joysticks = Input.GetJoystickNames();

5.2检测手柄输入

if (Input.GetButtonDown("Jump")) {
	print("Jump键按下");
}
if (Input.GetButtonUp("Jump")) {
	print("Jump键抬起");
}
if (Input.GetButton("Jump")) {
	print("Jump键长按");
}

6.陀螺仪(重力感应)

6.1开关

Input.gyro.enabled = true;

6.2重力加速度

print(Input.gyro.gravity);

6.3旋转速度

print(Input.gyro.rotationRate);

6.4当前旋转四元数

print(Input.gyro.attitude);

7.其他 

【是否有任意键或鼠标长按】
if (Input.anyKey) {
	print("有按键长按");
}

【是否有任意键或鼠标按下】
if (Input.anyKeyDown) {
	print("有按键按下");
}

【这一帧的键盘输入】
print(Input.inputString);

相关推荐

  1. log-01-日志组件 Log4j 入门介绍

    2024-07-11 21:24:02       52 阅读
  2. 详解 Flink Table API Flink SQL 入门介绍

    2024-07-11 21:24:02       24 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 21:24:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 21:24:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 21:24:02       58 阅读
  4. Python语言-面向对象

    2024-07-11 21:24:02       69 阅读

热门阅读

  1. 状态同步和帧同步原理细节

    2024-07-11 21:24:02       22 阅读
  2. easy-poi实现动态列(标题)、多sheet导出excel

    2024-07-11 21:24:02       23 阅读
  3. null empty

    2024-07-11 21:24:02       17 阅读
  4. C++反射的实现方式

    2024-07-11 21:24:02       21 阅读
  5. Visual Studio Code:深度解析与开发者的新宠

    2024-07-11 21:24:02       24 阅读
  6. 减法原则的定义

    2024-07-11 21:24:02       18 阅读
  7. 实现基于Zookeeper的分布式协调服务

    2024-07-11 21:24:02       22 阅读
  8. ios的info.plist 配置

    2024-07-11 21:24:02       24 阅读
  9. iOS 开发中不常见的专业术语

    2024-07-11 21:24:02       17 阅读
  10. Onnx 1-深度学习-Operators

    2024-07-11 21:24:02       20 阅读
  11. Windows 32 汇编笔记(一):基础知识

    2024-07-11 21:24:02       18 阅读