用按键控制方向
本课属于 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 会报错。
挑战
简单让玩家用方向键控制立方体。
- 在
Update()中,当Input.GetKey(KeyCode.RightArrow)为 true 时,将new Vector3(speed * Time.deltaTime, 0, 0)加到transform.position上。 - 按住
KeyCode.LeftArrow时,用-=减去相同的Vector3。
按“Play”,点击游戏并按住方向键:立方体会向右和向左滑动。然后点击“Check”。
亲手试试
using UnityEngine;
public class Steering : MonoBehaviour
{
public float speed = 4f;
void Update()
{
// 按右方向键向右移动,按左方向键向左移动。
}
}
Unity 脚本基础中的所有课
自己练习: Unity 在线编辑器