Menu
CoddyTech

드롭

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

깨진 벽돌은 때때로 패들을 향해 떨어지는 파워업을 떨어뜨립니다. 파워업이 떨어지는지는 확률로 결정됩니다. Random.value는 0에서 1 사이의 임의의 부동 소수점 숫자이므로, Random.value < 0.15f는 100번 중 약 15번 참이 됩니다. 확률을 필드에 저장해 두면 값을 조정할 수 있고, 테스트에서 매번 떨어지도록 1로 설정하거나 한 번도 떨어지지 않도록 0으로 설정할 수도 있습니다.

어떤 파워업이 떨어질지는 두 번째 확률로 결정됩니다. 프리팹 배열에서 임의의 인덱스를 선택합니다. 정수와 함께 사용하는 Random.Range는 최댓값을 포함하지 않으므로, Random.Range(0, array.Length)는 모든 요소를 선택할 수 있습니다. 적의 전리품:

public GameObject[] loot;
public float lootChance = 0.25f;

void DropLoot()
{
    if (Random.value >= lootChance) return;
    int pick = Random.Range(0, loot.Length);
    Instantiate(loot[pick], transform.position, Quaternion.identity);
}

파워업은 매 프레임 스스로를 이동해 일정한 속도로 떨어지며, 플레이 영역 아래로 내려가면 스스로 파괴되므로 놓친 파워업이 쌓이지 않습니다. 파워업의 프리팹에는 키네마틱 Rigidbody와 트리거 콜라이더가 있어, 물리 시스템이 파워업이 움직인다는 것을 알 수 있고 패들에 닿았을 때 이를 감지할 수 있습니다.

challenge icon

챌린지

어려움
  1. PowerUp에서 public float fallSpeed = 3f와 public float bottomY = -9f를 추가합니다. Update()에서 초당 fallSpeed 단위만큼 아래로 이동시키고, y 좌표가 bottomY보다 낮아지면 파워업을 파괴합니다.
  2. GameManager에서 public GameObject[] powerUps(씬에서 WidePowerUp 및 MultiPowerUp 프리팹을 연결합니다)와 public float dropChance = 0.15f를 추가합니다.
  3. BrickBroken에서 dropChance의 확률로 powerUps 중 하나를 무작위로 선택해 벽돌이 있던 위치에 생성합니다.

현재 파워업은 패들을 통과해 떨어집니다. 파워업을 잡는 방법은 다음에 다룹니다.

Play를 누르고, 파워업이 하나 떨어질 때까지 벽돌을 부순 다음 Check를 누릅니다.

직접 해보기

using UnityEngine;

public class PowerUp : MonoBehaviour
{
    // 마지막 장: 부서진 벽돌에서 떨어지는 파워업.
}
quiz icon실력 점검

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

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