U4S1L14——获取任意键输入的信息
U4S1L14——获取任意键输入的信息
本章代码关键字
1 | InputSystem.onAnyButtonPress.CallOnce() //输入一次传入到此方法传入的监听函数内 |
回顾学过的获取任意键输入的方法
-
键盘任意键按下
不能获取到具体的键位
1
2
3
4
5
6
7
8
9
10
11
12public InputAction input;
void Start()
{
input.Enable();
input.performed += (context) =>
{
print("任意键按下");
print(context.control.name);
print(context.control.path); //以上两个语句并不能获取到具体的键位
};
} -
键盘任意键按下字符
只能获取到可以具体显示的字符,对于方向键或者End键等等特殊按键不起作用
1
2
3
4Keyboard.current.onTextInput += (c) =>
{
print(c); //这个语句只能获取到可以具体显示的字符,对于方向键或者End键等等特殊按键不起作用
};
InputSystem中专门用于任意键按下的方案
下面的方法,都需要传入一个使用InputControl
作为参数的方法,用来执行接收到输入的逻辑
-
用
CallOnce
只会执行一次1
2
3
4
5InputSystem.onAnyButtonPress.CallOnce((control) =>
{
print(control.name);
print(control.path);
}); -
如果用
Call
,按键盘会报错(实际测试下来,Unity2021版不会出现报错, 但是会出现即使关闭运行,仍然会检测输入,仍然会输出打印的键位的问题 重新编译脚本可以解决),但是也能正常执行1
2
3
4
5InputSystem.onAnyButtonPress.Call((control) =>
{
print(control.path);
print(control.name);
});
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!