먹이
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에서 보드의 크기를 가져옵니다.
챌린지
중급GameManager를 완성하세요. 씬에서 snake는 머리의 Snake로, foodPrefab은 빨간 구체로 설정되어 있습니다.
public Snake snake;,public GameObject foodPrefab;및private Transform food;를 추가하세요.Start()에서foodPrefab을 인스턴스화하고, 해당 Transform을food에 저장한 다음MoveFood()를 호출하세요.void MoveFood()를 작성하세요. 이 메서드는food를 임의의 칸에 배치합니다. x와 z는 각각-snake.edge부터snake.edge까지, y는 0으로 설정합니다.
Play를 눌러 보드에서 먹이를 찾은 다음 Check를 누르세요.
직접 해보기
using UnityEngine;
public class GameManager : MonoBehaviour
{
// 게임을 관리합니다: 먹이, 점수, 게임 오버를 처리합니다. Chapter 2에서 내용을 채웁니다.
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.