Unity 关于Input类的使用

本文详细介绍了Unity游戏开发中Input类用于获取外设设备输入的关键方法,包括按键检测(GetKey,GetKeyDown,GetKeyUp),虚拟按键检测(GetButton,GetButtonDown,GetButtonUp),轴值获取(GetAxis,GetAxisRaw)以及鼠标位置和滚动的获取。
摘要由CSDN通过智能技术生成

Input类在我们游戏开发中需要获取外设设备(比如键盘、鼠标、游戏手柄等)进行交互时,基本都会用到。

它主要有以下一些常用的方法。

1、GetKey(KeyCode key),检测按键是否被按下;

2、GetKeyDown(KeyCode key),检测按键被按下的那一帧;

3、GetKeyUp(KeyCode key),检测按键被释放那一帧;

其中,第一个方法和后面方法是有一定区别的,GetKey方法,在按键被按下期间它会持续返回true,所以比较适合需持续响应按键输入的情况,比如角色的移动;而GetKeyDown和GetKeyUp方法只有在被按下或放开那一帧返回True,只响应一次,比较适合发射子弹或者跳跃这种。

对于KeyCode这个枚举参数,官方定义了很多。

但我们比较常用的是这些:

  • KeyCode.A, KeyCode.B, KeyCode.C, ... KeyCode.Z: 字母按键;
  • KeyCode.Alpha0, KeyCode.Alpha1, KeyCode.Alpha2, ... KeyCode.Alpha9: 数字键按键;
  • KeyCode.Space: 空格键。
  • KeyCode.Return: 回车键。
  • KeyCode.Escape: Esc键。
  • KeyCode.LeftShift, KeyCode.RightShift: Shift键。
  • KeyCode.LeftControl, KeyCode.RightControl: Control键。
  • KeyCode.LeftAlt, KeyCode.RightAlt: Alt键。
  • KeyCode.LeftArrow, KeyCode.RightArrow, KeyCode.UpArrow, KeyCode.DownArrow: 方向键。
  • KeyCode.F1, KeyCode.F2, KeyCode.F3, ... KeyCode.F12: 功能键。

4、 GetButton(string buttonName),检测指定虚拟按键是否被按下;

5、GetButtonDown(string buttonName),检测指定虚拟按键被按下的那一帧;

6、GetButtonUp(string buttonName),检测指定虚拟按键被释放那一帧;

上面三种方法是检测虚拟按键的方法,其中 GetButton也是细腻按键按下时,持续返回True,比较适合奔跑或射击,而GetButtonDown和GetButtonUp只有在按下或弹开那一帧返回True,GetButtonDown比较适合打开菜单,使用特殊技能这些,GetButtonUp比较适合停止奔跑,切换武器这些。

7、GetAxis(string axisName),获取指定虚拟轴的值;

8、GetAxisRaw(string axisName);获取指定虚拟轴的原始值,该方法返回的值只有-1、0、1三个可能的取值。

其中GetAxis和GetAxisRaw有区别的,GetAxi返回的数值是根据输入变化而返回平滑过渡的一系列数值。而GetAxisRaw根据取值范围,直接映射,返回-1、0、1,中间没有过渡。所以GetAxis比较适合平滑过渡的情况,如角色移动,相机旋转;而GetAxisRaw应用在更直接和灵敏的情况,比如跳跃,攻击。

设备虚拟键盘的映射可在Edit-Input Manager里面设置和查看。

除了上面的方法,还有一些跟鼠标相关的常见应用方法:

1、Input.mousePosition,取当前鼠标在屏幕上的位置,返回一个 Vector3 类型的坐标;

2、Input.GetMouseButtonDown(int button),检测鼠标按下那一帧;

3、Input.GetMouseButton(int button),检测鼠标按下;

4、Input.GetMouseButtonUp(int button),检测鼠标释放那一帧;

其中,参数 button 表示鼠标按钮的索引,0 表示左键,1 表示右键,2 表示中键。

5、Input.GetAxis("Mouse X"),Input.GetAxis("Mouse Y"),获取鼠标在水平和垂直方向上的移动距离,返回一个浮点数。

6、Input.GetAxis("Mouse ScrollWheel"),获取鼠标滚轮的滚动量,返回一个浮点数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不在同一频道上的呆子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值