학습 매체 : 책
책이름 : 레트로의 유니티 게임 프로그래밍 에센스
저자 : 이제민
본 내용은 해당 강의 내용을 공부하면서 정리한 글입니다.
이 장에서 다루는 내용
1. 탄알과 탄알 생성기 만들기
2. 프리팹
3. 실시간으로 게임 오브젝트를 생성하는 방법
4. 주기적으로 어떤 처리를 실행하는 방법
5. 충돌을 감지하는 방법
탄알이 속력을 가지도록 Bullet 게임 오브젝트에 리지드바디 컴포넌트를 추가한다.
리지드바디 컴포넌트를 추가하면 물리적인 상호작용이 가능하다. 따라서 Bullet 게임 오브젝트가 중력의 영향을 받아 아래로 떨어진다.
그러므로 리지드바디 컴포넌트의 중력 사용(Use Gravity) 필드를 체크 해제하여 중력을 무시한다.
Bullet 게임 오브젝트에는 구 콜라이더(Sphere Collider)가 추가되어 있어 물리적인 표면이 존재한다.
따라서 Bullet 게임 오브젝트는 콜라이더를 가진 다른 게임 오브젝트와 충돌하면 튕겨나갈 수 있다.
우리는 탄알이 다른 탄알에 충돌했을 때 튕겨나가지 않고 그냥 통과하도록 만들 거다. 이때 트리거(Trigger)로 설정된 콜라이더를 사용한다.
트리거 콜라이더는 충돌한 물체를 밀어내는 물리적인 표면이 없다. 그래서 트리거 콜라이더는 다른 일반 콜라이더와 겹치거나 서로를 뚫고 지나갈 수 있지만 충돌 자체는 감지한다.
따라서 트리거 콜라이더는 충돌이 감지되었을 때 어떤 기능을 실행하는 방아쇠로 많이 사용한다.
예를 들어 플레이어가 특정 영역으로 진입했는지 검사할 때 트리거 콜라이더를 많이 사용한다.
보이지 않는 트리거 콜라이더를 어떤 위치에 배치하고, 플레이어가 해당 트리거 콜라이더를 통과할 때 새로운 적을 출현시키거나 컷씬을 재생하는 방식으로 사용한다.
이외에도 트리거 콜라이더를 활용하는 방법은 굉장히 많다. 여기서는 트리거 콜라이더를 탄알이 충돌 자체는 감지하되 다른 게임 오브젝트를 밀어내지 않도록 하는 데 사용하겠다.
인스펙터 창에서 Sphere Collider 컴포넌트의 Is Trigger 체크
우리는 탄알 생성기로 Bullet 게임 오브젝트를 게임 도중 실시간으로 복제 생성할 것이다.
탄알 생성기 입장에서는 생성할 Bullet 게임 오브젝트들의 원본 게임 오브젝트가 필요하다. 따라서 Bullet 게임 오브젝트를 프리팹(Prefab)으로 만들겠다.
프리팹은 언제든지 재사용할 수 있는 미리 만들어진 게임 오브젝트 에셋(파일)이다. 비슷한 게임 오브젝트를 여러 개 만들 때 매번 다시 설정하는 번거로움을 줄이기 위해 프리팹을 사용한다.
게임 오브젝트를 프리팹으로 만들면 나중에 해당 게임 오브젝트와 똑같은 게임 오브젝트를 프리팹에서 복제 생성할 수 있다. 프리팹은 파일로 저장되기 때문에 현재 씬뿐만 아니라 다른 씬에서도 사용할 수 있다.
프리팹으로 게임 오브젝트 복제 생성
어떤 게임 오브젝트를 프리팹으로 만들려면 해당 게임 오브젝트를 하이어라키 창에서 프로젝트 창으로 드래그&드롭하면 된다.
다음 강의에서 계속~