1.从虚拟轴获取的值默认为0游戏动态,左右键(-1和1)
2.虚拟轴起到一个中间兼容功能,可以让我们的游戏操作设置在不同平台上工作
虚拟轴
虚拟轴通常用于控制该轴上的运动等。
一般虚拟轴的使用分为以下两个步骤:
1. 将控制方向的按键绑定到虚拟轴上---比如按A的时候我们绑定-1,按D的时候我们绑定1。
2、绑定后,通过获取虚拟轴的值进行if编程。虚拟轴的值小于 0 时向左移动,虚拟轴的值大于 1 时向右移动。
3.由于我们的按键是和虚拟轴绑定的,所以当什么都没有按下时,虚拟轴的值为0。按A键,虚拟轴就超过-1了。此时数值小于0。按D键创建虚拟轴。轴向1过大,此时值大于0
小于0时左移,大于0时右移
4.之所以使用虚拟轴,是因为我们可以将运动等操作编程到虚拟轴上,然后虚拟轴可以针对不同的按键进行编程,所以去不同的平台,我们只需要修改按键即可虚拟轴所面对的。无需代码即可实现移动等操作
1. 在 Edit.projectSetting.Input Manager 中,我们可以单击一个名为 axes 的选项
此轴具有 Unity 中内置的所有虚拟轴和虚拟按钮
什么是虚拟键?--- 可以理解为半虚轴,只有0/1或0/-1两个选项
我们最开始使用最多两个虚拟轴:Horizontal(adj.horizontal)unity 检测键盘输入unity 检测键盘输入,Vertical(adj.vertical)——分别对应x轴和y轴
随意打开一个轴,来到上图中的选项:
前两个 Button 分别是绑定到 -1 和 +1 的按钮
然后底部两个按钮是顶部两个按钮的替换按钮a和d
这三个是虚拟轴的重力、死区和灵敏度。至于这三者的功能,大家可以将鼠标停在上面,自行查看。
虚拟轴的使用还是在Updata方法中。这是因为虚拟轴是为键编程的。它仍然需要随时准备好获取用户的按键输入。这需要每帧扫描输入缓冲区以确保可以获取。用户按键输入
1、虚拟轴的本质是一个浮点型的数字,所以在获取到虚拟轴之后,我们需要使用一个浮点型变量来承担虚拟轴:调用Input类中的GetAxis方法来获取虚拟轴,和括号里的参数是一个字符串我们要获取的虚拟轴的名称
2.注意Unity中的虚拟轴有默认绑定键
横向默认绑定键:-1 -- key a, 1 -- key d
虚拟:-1 --- 键 s , 1 --- 键 w
如果有默认绑定按钮,则在按下按钮时,虚拟轴的值会转换为按钮对应的值。
除了虚拟轴,还有虚拟键。Unity 中的虚拟键也有默认绑定。例如2d素材,Jump 虚拟键的默认绑定键是键盘中的空格。
通过直接在Input中传入GetButton方法,将虚拟按钮的按钮名称(在InputManager中)传入方法的括号中,我们可以判断当前虚拟按钮的状态
由于虚拟按钮分为三种状态——按下的瞬间、按下的瞬间、按下的按钮、抬起按钮,我们也需要三个方法来判断这三种状态的值——向下、按下时、向上——如果是对应的状态,返回true,否则返回false