前言
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);