我试图制作一个简单的角色控制器。
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
。
答案 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);
}