Unity之虚拟轴

虚拟轴

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

文字有点枯燥,我们画个图来讲解一下。
这里写图片描述

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

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

这里写图片描述

如果要添加一个自己定义的虚拟轴,将size的加一。
首先看Horizontal(水平轴),
这里写图片描述
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);
    }
}

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

猜你喜欢

转载自blog.csdn.net/qq_29266497/article/details/81710403