조종하기
Coddy의 Unity 게임: 3D 스네이크 코스 레슨. 14개 중 2번째.
뱀은 화살표 키 또는 WASD로 방향을 바꿉니다. 카메라는 보드의 앞쪽 가장자리에서 보드를 내려다보므로, 화면 위쪽은 +z, 즉 Vector3.forward 방향이고 화면 아래쪽은 Vector3.back 방향입니다. Vector3.up은 하늘을 향합니다. 이 방향으로 머리를 움직이면 보드에서 위로 떠오릅니다.
방향 전환은 키를 한 번 누를 때 한 번 발생하므로, Input System에서 wasPressedThisFrame을 사용해 키를 읽습니다. 키를 누르면 direction만 바뀝니다. 다음 틱에 Step()이 여전히 머리를 움직이므로 뱀은 일정한 박자를 유지합니다. D를 누르면 화면 오른쪽으로 향하는 로버는 다음과 같습니다.
Keyboard keyboard = Keyboard.current;
if (keyboard != null && keyboard.dKey.wasPressedThisFrame)
{
heading = Vector3.right;
}Input System에서는 키보드에 축이 없습니다. 화살표 키와 그에 대응하는 문자는 각각 별개의 키이므로 ||로 연결합니다. 키보드가 없는 기기에서는 Keyboard.current가 null이므로, 맨 위에서 한 번 읽고 확인합니다.
챌린지
쉬움Snake에using UnityEngine.InputSystem;을 추가하세요.Update()의 맨 위에서Keyboard.current를 읽으세요. 위쪽 화살표 키나 W를 누르면direction을Vector3.forward로 설정하고, 아래쪽 화살표 키나 S를 누르면Vector3.back으로, 왼쪽 화살표 키나 A를 누르면Vector3.left로, 오른쪽 화살표 키나 D를 누르면Vector3.right로 설정하세요.Step()은 그대로 두세요. 머리는 다음 틱에 방향을 바꿉니다.
Play를 누르고, 게임을 클릭해 방향을 조종한 다음 Check를 누르세요.
직접 해보기
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;
}
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.