我怎样才能使这个脚本工作,或者另一个替代的球员运动脚本?这个基本的运动脚本在Unity中不做任何事情,当我按下WASD的原因。我是一个初学者在C#和Unity,我需要一个替代的球员运动脚本,实际上工作。
void Update()
{
if (Input.GetKeyDown(KeyCode.W))
transform.Translate(Vector3.forward);
if (Input.GetKeyDown(KeyCode.S))
transform.Translate(Vector3.back);
if (Input.GetKeyDown(KeyCode.A))
transform.Translate(Vector3.left);
if (Input.GetKeyDown(KeyCode.D))
transform.Translate(Vector3.right);
3条答案
按热度按时间hujrc8aj1#
我建议使用GetAxis(“Horizontal”)和GetAxis(“Vertical”)方法,默认情况下Mapwasd和箭头键,以帮助精简您的大型if树。
下面是我以前大学项目的一个小例子。
注:“* speed * Time.deltaTime”用于在时间/帧移动时帮助转换,在这种情况下,速度只是一个乘数。
0sgqnhkj2#
Input.GetKeyDown
检查您是否在该帧上按了w键。您需要Input.GetKey
。它检查您是否正在按住wnvonmuf3#
您应该使用GetAxis(“水平”)和GetAxis(“垂直”);下面是我的项目默认移动的基本代码:
希望这有帮助:)