Menu
CoddyTech

벽

Coddy의 Unity 게임: 벽돌깨기 코스 레슨. 16개 중 5번째.

벽돌은 격자 형태로 배치됩니다. 위에서 아래로 행을, 왼쪽에서 오른쪽으로 열을 만들며, 중첩된 두 개의 루프에서 만든 벽돌 프리팹을 각각 복제합니다. 벽돌의 위치는 행과 열 번호에 벽돌 중심 사이의 간격을 곱해 정합니다. 이 간격은 벽돌의 크기에 작은 틈을 더한 값입니다.

격자의 중심을 x = 0에 맞추려면 첫 번째 열이 어디에 놓일지 계산하세요. n개의 열 사이에는 n - 1개의 틈이 있으므로, 간격이 s일 때 양쪽 끝 중심 사이의 거리는 (n - 1) * s이고, 첫 번째 중심은 그 거리의 절반만큼 왼쪽에 놓입니다. 2단위 간격으로 세우는 울타리 기둥 다섯 개의 예입니다.

int posts = 5;
float spacing = 2f;
float left = -(posts - 1) * spacing / 2f;
for (int i = 0; i < posts; i++)
{
    Instantiate(postPrefab, new Vector3(left + i * spacing, 0f, 3f), Quaternion.identity);
}

기둥은 -4, -2, 0, 2, 4에 놓입니다. 다섯 개의 기둥 사이에는 네 개의 틈이 있으므로 첫 번째 기둥은 -5가 아니라 -4에 있습니다. Instantiate의 네 번째 인수인 부모 Transform을 지정하면 각 복제본이 하나의 오브젝트 아래에 배치되어 Hierarchy를 깔끔하게 유지할 수 있습니다. 프리팹 필드의 타입이 Brick과 같은 스크립트라면, Instantiate는 새 복제본의 스크립트를 반환하므로 바로 사용할 수 있습니다.

challenge icon

챌린지

중급

GameManager에서 벽을 만드세요:

  1. public Brick brickPrefab과 public Transform wall을 추가하세요(씬에서 Brick 프리팹과 Wall 오브젝트를 연결합니다). 그리고 public int rows = 5, public int columns = 9, public float spacingX = 1.75f, public float spacingY = 0.75f 및 public float topY = 6f를 추가하세요.
  2. void BuildWall()을 작성하세요. 각 행과 열마다 벽돌 하나를 만들고, wall의 자식으로 설정합니다. 0번 행은 y = topY에 있고, 각 행은 그보다 spacingY만큼 아래에 있습니다. 열 간격은 spacingX이며 x = 0을 중심으로 배치합니다. 벽돌은 z = 0에 놓입니다.
  3. Start()에서 BuildWall()을 호출하세요.

Play를 눌러 공을 벽에 튕기세요(벽돌은 아직 부서지지 않습니다). 그런 다음 Check를 누르세요.

직접 해보기

using UnityEngine;

public class GameManager : MonoBehaviour
{
    public static GameManager Instance;

    void Awake()
    {
        Instance = this;
    }

    // 나중에: 벽돌 벽, 점수, 목숨, 레벨.
}
quiz icon실력 점검

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

Unity 게임: 벽돌깨기의 모든 레슨