Unity --- 虚拟轴的使用

 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的选项

 这个axes中就有Unity内置的所有虚拟轴和虚拟按键

什么是虚拟按键? --- 你可以把它理解为半虚拟轴,他只有0/1或者是0/-1两个选项 

我们用的最多的是开头的两个虚拟轴:Horizontal(adj.水平的),Vertical(adj.垂直的)-- 分别对应x,y轴

随便对开一个轴线,来到上面这张图中的选项:

开头两个Button分别是绑定-1和+1的按键

然后底下两个Button则是上面两个按键的替补按键 a和d

这三个分别是虚拟轴的重力,死区和灵敏度,至于这三个有啥作用可以把鼠标停在上面自己查看 


虚拟轴的使用依然是在Updata方法中,这是因为虚拟轴是面向按键编程的,它依然要随时准备获取用户的按键输入,这就需要每帧都对输入缓存区进行扫描,确保一定能获取用户的按键输入

1.虚拟轴的本质是一个float型的数字,所以获取虚拟轴后我们需要用一个float变量来承接这个虚拟轴:调用Input类中的GetAxis方法来获取虚拟轴,括号内填写的参数是字符串类型的我们要获取的虚拟轴的名称

 2.注意在Unity中的虚拟轴都有默认绑定按键

Horizontal的默认绑定按键:-1 -- 按键a , 1 -- 按键d

Virtual : -1 --- 按键s , 1 --- 按键w

有默认绑定按键的话,虚拟轴的值就会在按下按键的时候,向按键对应的值过渡


除了虚拟轴以外,还有虚拟按键,Unity中虚拟按键也是有默认绑定的,比如Jump虚拟按键的默认绑定按键是键盘中的空格

直接通过Input中的GetButton方法,并向方法的括号中传入虚拟按键的按键名(在Input Manager中有)我们就能够对当前虚拟按键的状态做判断 

由于虚拟按键分为三个状态 --- 按下的那一刻,按下事,按键抬起时,所以我们也需要三个方法来判断这个三个状态的值 -- down , 按下时 ,up --- 如果处于对应的状态就返回ture,否则返回false

猜你喜欢

转载自blog.csdn.net/qq_51947882/article/details/126490463