我不知道为什么,但我的播放器移动不是很顺畅,但我必须多次按下按键才能将他移动几英寸,我无法按住按键让他走路。这是我的代码:
public class player : MonoBehaviour
{
private Rigidbody _rigidbody;
private void Awake() => GetComponent< Rigidbody> ();
private void Start()
{
}
void Update()
{
if (_WalkRight)
transform.position += Time.deltaTime * Walk_speed * Vector3.right;
if (_WalkLeft)
transform.position += Time.deltaTime * Walk_speed * Vector3.left;
if (_WalkUp)
transform.position += Time.deltaTime * Walk_speed * Vector3.forward;
if (_WalkDown)
transform.position += Time.deltaTime * Walk_speed * Vector3.back;
}
[SerializeField] private float Walk_speed = 30f;
[SerializeField] private float Run_speed = 60f;
private bool _WalkRight => Input.GetKeyDown(KeyCode.D);
private bool _WalkLeft => Input.GetKeyDown(KeyCode.A) ;
private bool _WalkUp => Input.GetKeyDown(KeyCode.W) ;
private bool _WalkDown => Input.GetKeyDown(KeyCode.S);
}
有人能指出我做错了什么吗?我也知道变量通常出现在代码的开头,我会修复它。
答案 0 :(得分:1)
Input.GetKeyDown(KeyCode)
如果您在下一帧上按住它,则不会返回 true
,即您需要重复按下所需的键。
改用 Input.GetKey(KeyCode)
。