Menu
CoddyTech

用按键控制方向

本课属于 Coddy Unity 学习旅程的“Unity 脚本基础”单元。第 12 课,共 85 课。

按住空格键时,每一帧中 Input.GetKey(KeyCode.Space) 的值都是 true,否则就是 false。在 Update() 中检查它,并且只在结果为真时移动,这样玩家就能控制对象。

按住空格键时,这个箱子会以每秒 lift 个单位的速度上升。和上一课一样,Time.deltaTime 能让速度保持为每秒的速度:

public float lift = 2f;

void Update()
{
    if (Input.GetKey(KeyCode.Space))
    {
        transform.position += new Vector3(0, lift * Time.deltaTime, 0);
    }
}

每个按键都有对应的 KeyCode:KeyCode.UpArrow、KeyCode.W、KeyCode.Return 等。先点击游戏视图,让按键输入传递给它。Unity 6 的注意事项:新项目使用新的 Input System;在将 Active Input Handling(Project Settings,Player)设置为 Both 之前,Input.GetKey 会报错。

challenge icon

挑战

简单

让玩家用方向键控制立方体。

  1. 在 Update() 中,当 Input.GetKey(KeyCode.RightArrow) 为 true 时,将 new Vector3(speed * Time.deltaTime, 0, 0) 加到 transform.position 上。
  2. 按住 KeyCode.LeftArrow 时,用 -= 减去相同的 Vector3。

按“Play”,点击游戏并按住方向键:立方体会向右和向左滑动。然后点击“Check”。

亲手试试

using UnityEngine;

public class Steering : MonoBehaviour
{
    public float speed = 4f;

    void Update()
    {
        // 按右方向键向右移动,按左方向键向左移动。
    }
}

Unity 脚本基础中的所有课

自己练习: Unity 在线编辑器