Menu
CoddyTech

먹이

Coddy의 Unity 게임: 3D 스네이크 코스 레슨. 14개 중 5번째.

먹이는 임의의 칸에 놓입니다. 칸은 정수이므로 Random.Range의 int 버전을 사용해 x와 z를 선택하세요. int를 사용하면 최댓값은 제외됩니다. Random.Range(1, 7)은 주사위를 굴리는 것처럼 1부터 6까지 반환하며, 7은 나오지 않습니다. 어떤 수를 포함하려면 그 수보다 1 큰 값을 요청하세요.

float 인수를 사용하면 Random.Range는 3.62와 같이 두 값 사이의 임의의 수를 반환합니다. 이는 칸의 중앙이 아니므로 뱀이 먹이를 만날 수 없습니다. 칸이 0부터 9까지인 10×10 격자의 상자:

int row = Random.Range(0, 10);      // 0부터 9까지
int column = Random.Range(0, 10);
chest.position = new Vector3(column, 0f, row);

보드에는 한 번에 먹이 하나만 있으므로 게임은 Start()에서 한 번 생성하고, 먹이를 새 위치에 놓아야 할 때마다 이동시킵니다. GameManager가 먹이를 관리하며, snake 필드를 통해 뱀의 edge에서 보드의 크기를 가져옵니다.

challenge icon

챌린지

중급

GameManager를 완성하세요. 씬에서 snake는 머리의 Snake로, foodPrefab은 빨간 구체로 설정되어 있습니다.

  1. public Snake snake;, public GameObject foodPrefab; 및 private Transform food;를 추가하세요.
  2. Start()에서 foodPrefab을 인스턴스화하고, 해당 Transform을 food에 저장한 다음 MoveFood()를 호출하세요.
  3. void MoveFood()를 작성하세요. 이 메서드는 food를 임의의 칸에 배치합니다. x와 z는 각각 -snake.edge부터 snake.edge까지, y는 0으로 설정합니다.

Play를 눌러 보드에서 먹이를 찾은 다음 Check를 누르세요.

직접 해보기

using UnityEngine;

public class GameManager : MonoBehaviour
{
    // 게임을 관리합니다: 먹이, 점수, 게임 오버를 처리합니다. Chapter 2에서 내용을 채웁니다.
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Unity 게임: 3D 스네이크의 모든 레슨