Menu
CoddyTech

복습: 총알 풀

Coddy Unity 여정의 Unity 게임 아키텍처 섹션에 포함된 레슨. 50개 중 40번째.

challenge icon

챌린지

중급

사격 연습. 방향키를 누르면 Tank가 왼쪽과 오른쪽으로 움직이고(준비됨), 빨간색 표적 두 개에는 Hit()이 있는 Target 스크립트가 있습니다(준비됨). 탱크가 풀링된 총알을 발사하도록 만드세요:

  • Tank.cs에서 총알을 bulletPrefab으로 생성하고, 꺼낼 때 활성화하고 돌아오면 비활성화하며, 풀에서 제거하는 총알은 파괴하고, 예비 총알을 최대 4개 보관하는 ObjectPool<Bullet>을 유지하세요.
  • 스페이스바를 누르면 풀에서 총알 하나를 가져와 탱크 앞쪽으로 1단위 떨어진 위치에서 발사를 시작합니다.
  • Bullet.cs에서 총알은 speed(15)의 속도로 앞으로(+z) 날아갑니다. Target 스크립트가 있는 대상에 맞으면(총알의 콜라이더는 트리거임) 대상의 Hit()을 호출하고 즉시 풀로 돌아갑니다. 아무것도 맞히지 않은 총알은 life(1)초가 지나면 돌아갑니다.
  • 발사할 때마다 총알은 전체 수명만큼 사용할 수 있으며, 재사용된 총알도 마찬가지입니다. 총알은 발사 1회당 한 번씩 풀로 돌아갑니다.

Play를 누르고, 두 표적을 모두 쏜 다음 Check를 누르세요.

직접 해보기

using UnityEngine;
using UnityEngine.Pool;

public class Bullet : MonoBehaviour
{
    public float speed = 15f;
    public float life = 1f;

    // 앞으로 날아가다가 Target에 부딪히거나 life초가 지나면 풀로 돌아갑니다
}

Unity 게임 아키텍처의 모든 레슨