튼튼한 벽돌
Coddy의 Unity 게임: 벽돌 깨기 코스 레슨. 19개 중 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[]를 위쪽 행부터 지정하면 위쪽 행이 나머지 행보다 더 많이 맞아야 부서지도록 할 수 있습니다.
챌린지
중급맨 윗줄 벽돌은 두 번 맞아야 부서집니다.
Brick에public int hits = 1;,public Color[] colors;(장면에서 파란색, 주황색, 빨간색을 설정함) 및SetHits(int count)를 추가하세요. hits 값과 색상colors[hits - 1]을 설정합니다.Hit()은 hits를 1 줄입니다. 0이 되면 벽돌이 부서지고 점수가 올라가며, 그렇지 않으면 새 색상을 표시합니다.GameManager에public int[] rowHits = { 2, 1, 1, 1, 1 };를 추가하고, 새 벽돌을 만들 때마다brick.SetHits(rowHits[row])를 호출하세요.
‘플레이’를 누르세요. 맨 윗줄은 주황색이며, 맞으면 파란색으로 바뀝니다. 그런 다음 ‘확인’을 누르세요.
직접 해보기
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);
}
}
Unity 게임: 벽돌 깨기의 모든 레슨
직접 연습해 보세요: Unity 플레이그라운드