보드
Coddy의 Unity 게임: 3D 스네이크 코스 레슨. 14개 중 1번째.
이 과정에서는 3D Snake를 만듭니다. 위에서 내려다본 15×15 보드 위에서 큐브로 이루어진 뱀이 움직입니다. 뱀은 한 번에 한 칸씩 움직이고, 방향키나 WASD로 방향을 바꾸며, 먹이를 먹고 자라다가 벽이나 자기 꼬리에 부딪히면 죽습니다. Snake는 머리를 움직이고, GameManager는 먹이가 나타날 때까지 비어 있습니다. ‘플레이’를 누르면 게임이 실행되고, ‘확인’을 누르면 코드를 채점합니다.
각 칸의 너비는 1단위이며, 좌표는 -7부터 7까지의 정수입니다. 뱀은 미끄러지듯 움직이지 않습니다. 고정된 박자인 틱마다 한 칸씩 뛰어 이동하고, 그 사이에는 멈춰 있습니다. 틱은 타이머입니다. 매 프레임마다 Time.deltaTime을 더하고, 틱에 도달하면 동작을 실행한 뒤 타이머에서 틱을 뺍니다.
timer += Time.deltaTime;
if (timer >= 0.5f)
{
timer -= 0.5f;
Step();
}타이머를 0으로 설정하는 대신 틱을 빼면, 틱을 넘긴 프레임의 일부 시간이 보존되어 틱이 점점 늦어지지 않습니다. 숫자가 아니라 tick 필드를 사용하세요.
챌린지
쉬움머리가 매 틱마다 한 칸씩 이동하게 하세요.
Snake에private float timer;를 추가하세요.Update()에서 timer에Time.deltaTime을 더하세요.timer >= tick이면 tick을 빼고Step()을 호출하세요.Step()에서transform.position에direction을 더하세요.
‘플레이’를 누르세요. 머리가 오른쪽으로 한 칸씩 이동하며, 현재는 보드 밖으로 나갑니다. 그런 다음 ‘확인’을 누르세요.
직접 해보기
using UnityEngine;
public class Snake : MonoBehaviour
{
public float tick = 0.15f; // 두 단계 사이의 시간(초)
private Vector3 direction = Vector3.right;
void Update()
{
// tick초마다 Step()을 한 번 실행
}
void Step()
{
// direction 방향으로 머리를 한 칸 이동
}
}
Unity 게임: 3D 스네이크의 모든 레슨
직접 연습해 보세요: Unity 플레이그라운드