释放钥匙时立即停止角色

Mar*_*aht 2 c# unity-game-engine

我正在尝试制作一个简单的角色控制器.

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);
}
Run Code Online (Sandbox Code Playgroud)

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

Pro*_*mer 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);
}
Run Code Online (Sandbox Code Playgroud)