Unity 입문 TopDown Shooting - 충돌 처리와 맵 구성

Amberjack·2024년 1월 18일
0

Unity

목록 보기
9/44

💥 충돌과 각 컴포넌트의 이해

📌 Unity에서 충돌과 관련하여 중요한 개념!!! - Collider와 Rigidbody

  • Collider :

    • Collider 컴포넌트는 게임 오브젝트에 물리적 형태를 부여한다. 이는 충돌 감지를 가능케 하며, 여러 가지 종류의 Collider들이 있다.
    • Collider 자체적으로 물리적인 움직임을 제어할 수는 없지만, 충돌을 감지할 수 있다.
  • Rigidbody

    • Rigidbody 컴포넌트는 게임 오브젝트에 물리 법칙을 적용한다. Rigidbody가 있는 오브젝트는 중력의 영향을 받고, 힘과 토크를 통해 움직일 수 있다.
    • Rigidbody가 부착된 오브젝트는 다른 Rigidbody나 Collider와 충돌할 수 있다!

▪️ 충돌 발생 시

  • Unity는 OnCollisionEnter, OnCollisionStay, OnCollisioniExit 등의 이벤트를 발생시킨다.
  • 이 이벤트는 스크립트에서 처리하여 원하는 기능을 실행할 수 있다.
    ex) 오브젝트가 플레이어와 충돌하면 데미지를 입힌다, 오브젝트가 땅에 닿으면 점프 가능 상태로 변경하기 등...

🏭 타일맵

🤔 타일맵?

이미지들을 타일 방식으로 맵을 구성하는 것!

📌 타일 맵의 구성 요소

  1. Tilemap GameObject : Unity의 타일맵 구조를 구성하는 데 사용한다. Tilemap Grid의 자식으로 위치하고, 특정 타일의 배치를 관리한다.
  2. Grid GameObject : 모든 타일맵이 위치하는 기본 격자를 나타낸다.
  3. Tilemap Renderer : 타일맵의 모양을 실제로 그리는 역할!
  4. Tilemap Collider 2D : 필요한 경우, 타일맵에 물리적인 경계를 추가하는 데 사용한다. 이를 통해 게임 캐릭터가 타일맵 환경과 상호작용할 수 있게 된다.
  5. Tile Assets : 개별 타일의 모양과 동작을 정의한다. 여러 개의 타일을 묶어서 Tileset이라고 하기도 한다.

🏭 타일맵 만들기!

▪️ 타일맵 생성하기!

타일맵을 생성하면 씬 메뉴에서 격자가 출력되는 것을 확인할 수 있다.

이후, Windows → 2D → Tile Palette을 열어준다.

Tile Palette에서 Create New Palette을 한다. 이름은 Dungeon이라 하자.

Create를 하게 되면 생성할 폴더 위치를 지정해달라고 뜨는데 Artwork, 그 아래에 Level 이라는 폴더를 만들자.

이후, 타일로 사용할 리소스들을 드래그 앤 드랍으로 Tile Palette에 넣어주면 다시 파일 탐색기에서 생성할 위치를 지정해달라고 하는데, Tiles라는 폴더를 생성해서 그 밑으로 지정하면 된다.

Tile Palette에 적용된 모습! ▼

이후 벽으로 사용할 타일들까지 지정해서, 타일을 씬의 격자에 깔아주면 된다!

이제 뒷배경을 만들어 보자.

Tilemap을 두 개 생성하여 각각 BackDesign과 ForeDesign이라 하자.

이후 Tilemap을 하나 더 생성하여 Collision이라고 한 뒤, 그렸던 부분들을 덮어 씌워서 그린다.

이후에 Collision에게 Tilemap Collider 2D를 추가한다.

이후, Collision의 Color의 A 값을 0으로 바꿔 투명하게 만들면 투명한 벽(충돌체)이 완성된다!!

이후에는 타일맵들과 플레이어의 Order in Layer를 수정하자.
Floor는 0, BackDesign은 2, ForeDesign은 20(캐릭터보다 앞으로 나와야 하기 때문에), player는 5정도로 하자.

이후, Player에 Collider를 추가하면 완성!

완성된 모습 ▼

0개의 댓글