欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Unity之虚拟轴

程序员文章站 2022-03-25 20:25:25
...

虚拟轴

概念:
首先,啥子叫虚拟轴呢?
用我们通俗的话来说就是我们自己想象的一条范围是 -1~1之间的数轴。
为啥子要用到虚拟轴呢?
就是为了方便获取键盘的输入,其实就是一种简便方法。比如我们想使用A、D键和左、右键来控制游戏物体的左右移动时,按照我们的之前的思路是用一个if条件来判断四个键是否按下
而有了虚拟轴之后,我们只需要获取水平方向的输入就可以。

文字有点枯燥,我们画个图来讲解一下。
Unity之虚拟轴

按下A或左键时就会返回一个 -1,按下D或右键时就返回 1 ,没有按时就返回 0。

设置虚拟轴
Edit => project setting => input,点击input之后会在unity右 上角显示你要设置的新的输入轴所有的按键设置InputManager。

Unity之虚拟轴

如果要添加一个自己定义的虚拟轴,将size的加一。
首先看Horizontal(水平轴),
Unity之虚拟轴
Sensitivity是灵敏度,不是平滑度
可以通过改变Sensitivity的值来控制值的变化速度

如何通过代码调用呢?

public class Axis : MonoBehaviour {

    void Start () {

    }

    void Update () {
        //Horizontal是控制水平方向的值,也就是x轴的值
        //GetAxisRaw方法获取虚拟轴,当某键按下时会直接返回1或-1,没有变化过程
        float x1 = Input.GetAxisRaw("Horizontal");
        //GetAxis方法获取虚拟轴会有一个变化过程
        float x2 = Input.GetAxis("Horizontal");
        //Vertical是控制垂直方向的值,也就是z轴的值
        float y = Input.GetAxis("Vertical");
        //利用Translate方法来控制gameobject移动
        transform.Translate(new Vector3(x1,0,y)*Time.deltaTime);
    }
}

其他虚拟轴也是这样使用,这里就不一一讲解了,等待你们自己去挖掘。。。。。