Menu
CoddyTech

튼튼한 벽돌

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

일부 벽돌은 한 번 이상 맞아야 합니다. 각 벽돌은 남은 피격 횟수를 기록합니다. 한 번 맞을 때마다 횟수가 하나 줄어들고, 횟수가 0이 되는 타격에만 벽돌이 부서지고 점수가 올라갑니다. 그때까지 벽돌의 색이 바뀌므로 플레이어는 벽돌이 얼마나 더 버틸 수 있는지 알 수 있습니다.

Inspector에서 설정한 색상 배열은 횟수를 색상에 대응시킵니다. 요소 0은 한 번 남았을 때의 색상이고, 요소 1은 두 번 남았을 때의 색상이므로 횟수가 n일 때의 색상은 요소 n - 1입니다. 충전 횟수가 있는 방패도 같은 방식으로 처리합니다.

public Color[] chargeColors;   // 요소 0: 충전 1회 남음

void ShowCharges(int charges)
{
    GetComponent<Renderer>().material.color = chargeColors[charges - 1];
}

material을 읽으면 이 렌더러는 처음 읽을 때 재질의 복사본을 갖게 되므로, 방패 하나 또는 벽돌 하나의 색상만 바뀌고 프리팹의 모든 복사본이 다시 칠해지지는 않습니다. GameManager는 새 벽돌마다 얼마나 튼튼할지 결정합니다. 행마다 숫자 하나씩 들어 있는 int[]를 위쪽 행부터 지정하면 위쪽 행이 나머지 행보다 더 많이 맞아야 부서지도록 할 수 있습니다.

challenge icon

챌린지

중급
  1. Brick에 public int hits = 1과 public Color[] colors를 추가하세요. 씬에서 colors에 파란색, 주황색, 빨간색을 설정해 각각 1번, 2번, 3번 맞았을 때 남도록 합니다.
  2. public void SetHits(int count)를 작성하세요. 이 메서드는 hits를 설정하고 해당 벽돌의 색을 표시합니다.
  3. Hit()를 변경하세요. hits에서 1을 빼세요. 0이 되면 벽돌이 부서지고 이전처럼 점수를 얻습니다. 그렇지 않으면 새 색만 표시합니다.
  4. GameManager에 public int[] rowHits = { 2, 1, 1, 1, 1 };를 추가하고, 새 벽돌마다 SetHits를 사용해 rowHits[row]만큼의 피격 횟수를 설정하세요.

Play를 눌러 맨 위 행의 주황색 벽돌을 약하게 만든 다음 Check를 누르세요.

직접 해보기

using UnityEngine;

public class Brick : MonoBehaviour
{
    public int points = 10;

    void OnCollisionEnter(Collision collision)
    {
        if (collision.gameObject.CompareTag("Ball")) Hit();
    }

    public void Hit()
    {
        GameManager.Instance.BrickBroken(this);
        Destroy(gameObject);
    }
}
quiz icon실력 점검

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

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