控制方向
Coddy Unity 3D 贪吃蛇游戏 课程的第 2 课,共 14 课。
蛇会根据方向键或 WASD 转向。摄像机从棋盘的前沿向下看,因此屏幕上方沿着 +z 方向,也就是 Vector3.forward,屏幕下方则是 Vector3.back。Vector3.up 指向天空:如果蛇头朝这个方向移动,就会升离棋盘。
每按下一次按键只会转向一次,所以要用 wasPressedThisFrame 读取按键。按键只会改变 direction;蛇头仍会在下一次刻度时由 Step() 移动:
Keyboard keyboard = Keyboard.current;
if (keyboard != null && keyboard.dKey.wasPressedThisFrame)
{
direction = Vector3.right;
}方向键和对应的字母键是两个按键,用 || 连接。没有键盘的设备上,Keyboard.current 为 null,所以要在开头检查一次。
挑战
简单用方向键或 WASD 控制蛇的方向。
- 将
using UnityEngine.InputSystem;添加到Snake中。 - 在
Update()开头读取Keyboard.current:按上方向键或 W 键时设置direction = Vector3.forward,按下方向键或 S 键时设置Vector3.back,按左方向键或 A 键时设置Vector3.left,按右方向键或 D 键时设置Vector3.right。 - 保持
Step()不变:头部会在下一个步进时转向。
点击“开始”,再点击游戏并控制蛇的方向:头部会在下一步时转向。然后点击“检查”。
亲手试试
using UnityEngine;
public class Snake : MonoBehaviour
{
public float tick = 0.15f; // 每两步之间的间隔秒数
private float timer;
private Vector3 direction = Vector3.right;
void Update()
{
timer += Time.deltaTime;
if (timer >= tick)
{
timer -= tick;
Step();
}
}
void Step()
{
transform.position += direction;
}
}
Unity 3D 贪吃蛇游戏中的所有课
自己练习: Unity 在线编辑器