释放钥匙时立即停止角色

时间:2017-03-01 16:45:39

标签: c# unity3d

我试图制作一个简单的角色控制器。

void Update () 
{
    var x = Input.GetAxis("Horizontal") * Time.deltaTime * 6;
    var z = Input.GetAxis("Vertical") * Time.deltaTime * 6;

    Vector3 direction = Quaternion.AngleAxis(45,Vector3.up) * new Vector3(x, 0, z);

    transform.Translate(direction);
}

但这件事有加速和减速的不良影响。当我按下按钮时,它会加速到最大速度并继续移动,当我放松时它会平稳地减慢速度。但我希望它立即停止。如果我按下按钮,速度应该是最大值,释放时0

1 个答案:

答案 0 :(得分:5)

使用不适用平滑过滤的Input.GetAxisRaw。它应该立即停止而不是逐渐减速。

void Update () 
{
    var x = Input.GetAxisRaw("Horizontal") * Time.deltaTime * 6;
    var z = Input.GetAxisRaw("Vertical") * Time.deltaTime * 6;

    Vector3 direction = Quaternion.AngleAxis(45,Vector3.up) * new Vector3(x, 0, z);

    transform.Translate(direction);
}