레트로의 유니티 게임 프로그래밍 에센스 - 7.1

Cosmos·2023년 4월 5일
0

학습 매체 : 책

책이름 : 레트로의 유니티 게임 프로그래밍 에센스

저자 : 이제민


본 내용은 해당 강의 내용을 공부하면서 정리한 글입니다.


  • 앞 장에서는 레벨과 플레이어 게임 오브젝트를 만들었다. 이 장에서는 앞 장에서 만든 플레이어를 노리는 탄알을 만든다.

이 장에서 다루는 내용

1. 탄알과 탄알 생성기 만들기

2. 프리팹

3. 실시간으로 게임 오브젝트를 생성하는 방법

4. 주기적으로 어떤 처리를 실행하는 방법

5. 충돌을 감지하는 방법


7.1 탄알 게임 오브젝트 준비


  • 탄알 게임 오브젝트를 만들고 필요한 컴포넌트를 추가한다. 탄알은 생성된 후 앞쪽 방향으로 일정 속도로 날아간다. 또한 어떤 게임 오브젝트와 충돌했을 때 충돌한 게임 오브젝트가 플레이어라면 해당 게임 오브젝트를 파괴한다.

7.1.1 Bullet 게임 오브젝트 만들기

  • 탄알이 될 Bullet 게임 오브젝트를 구성하자. 구(Sphere)를 생성하고 크기를 적당히 줄여 탄알로 사용한다.

  • 하이어라키 창에서 Bullet을 더블 클릭하면 Bullet 게임 오브젝트가 씬 창에서 포커스 된다.

  • 이제 Bullet 머티리얼을 생성하자.


7.1.2 리지드바디 컴포넌트 설정하기

  • 탄알이 속력을 가지도록 Bullet 게임 오브젝트에 리지드바디 컴포넌트를 추가한다.

  • 리지드바디 컴포넌트를 추가하면 물리적인 상호작용이 가능하다. 따라서 Bullet 게임 오브젝트가 중력의 영향을 받아 아래로 떨어진다.

  • 그러므로 리지드바디 컴포넌트의 중력 사용(Use Gravity) 필드를 체크 해제하여 중력을 무시한다.


7.1.3 콜라이더 설정하기

  • Bullet 게임 오브젝트에는 구 콜라이더(Sphere Collider)가 추가되어 있어 물리적인 표면이 존재한다.

  • 따라서 Bullet 게임 오브젝트는 콜라이더를 가진 다른 게임 오브젝트와 충돌하면 튕겨나갈 수 있다.

  • 우리는 탄알이 다른 탄알에 충돌했을 때 튕겨나가지 않고 그냥 통과하도록 만들 거다. 이때 트리거(Trigger)로 설정된 콜라이더를 사용한다.


트리거 콜라이더

  • 트리거 콜라이더는 충돌한 물체를 밀어내는 물리적인 표면이 없다. 그래서 트리거 콜라이더는 다른 일반 콜라이더와 겹치거나 서로를 뚫고 지나갈 수 있지만 충돌 자체는 감지한다.

  • 따라서 트리거 콜라이더는 충돌이 감지되었을 때 어떤 기능을 실행하는 방아쇠로 많이 사용한다.

  • 예를 들어 플레이어가 특정 영역으로 진입했는지 검사할 때 트리거 콜라이더를 많이 사용한다.

  • 보이지 않는 트리거 콜라이더를 어떤 위치에 배치하고, 플레이어가 해당 트리거 콜라이더를 통과할 때 새로운 적을 출현시키거나 컷씬을 재생하는 방식으로 사용한다.

  • 이외에도 트리거 콜라이더를 활용하는 방법은 굉장히 많다. 여기서는 트리거 콜라이더를 탄알이 충돌 자체는 감지하되 다른 게임 오브젝트를 밀어내지 않도록 하는 데 사용하겠다.

  • 인스펙터 창에서 Sphere Collider 컴포넌트의 Is Trigger 체크


7.1.4 Bullet을 프리팹으로 만들기

  • 우리는 탄알 생성기로 Bullet 게임 오브젝트를 게임 도중 실시간으로 복제 생성할 것이다.

  • 탄알 생성기 입장에서는 생성할 Bullet 게임 오브젝트들의 원본 게임 오브젝트가 필요하다. 따라서 Bullet 게임 오브젝트를 프리팹(Prefab)으로 만들겠다.


프리팹

  • 프리팹은 언제든지 재사용할 수 있는 미리 만들어진 게임 오브젝트 에셋(파일)이다. 비슷한 게임 오브젝트를 여러 개 만들 때 매번 다시 설정하는 번거로움을 줄이기 위해 프리팹을 사용한다.

  • 게임 오브젝트를 프리팹으로 만들면 나중에 해당 게임 오브젝트와 똑같은 게임 오브젝트를 프리팹에서 복제 생성할 수 있다. 프리팹은 파일로 저장되기 때문에 현재 씬뿐만 아니라 다른 씬에서도 사용할 수 있다.

  • 프리팹으로 게임 오브젝트 복제 생성

  • 어떤 게임 오브젝트를 프리팹으로 만들려면 해당 게임 오브젝트를 하이어라키 창에서 프로젝트 창으로 드래그&드롭하면 된다.

  • 프리팹의 복제본 게임 오브젝트는 하이어라키 창에서 이름이 파란색으로 표시된다.

  • 반대로, 프로젝트 창의 프리팹을 씬이나 하이어라키 창으로 드래그&드롭하면 프리팹의 복제본이 생성된다.

  • 연습 삼아 만든 Bullet(1)을 삭제하고 탄알 스크립트를 작성해 보자.
    ( 삭제는 [Delete] 키를 누르면 된다. )

다음 강의에서 계속~

profile
게임 개발을 목적으로 공부하고 있는 대학생입니다.

0개의 댓글