Flappy Bird 만들기 - 기본 용어 정리 및 UI 구성 (3)

이도희·2021년 12월 29일
0

Flappy Bird 프로젝트

목록 보기
3/4
post-thumbnail

(3) 땅 오브젝트 배치 및 물리 엔진 사용하기

본 포스트는 조코딩님의 "누구나 할 수 있는 유니티 수익형 게임 만들기 1강"을 정리한 내용입니다.
https://www.youtube.com/watch?v=jbBANDFK2M0
사용 버전: unity 2020.3.18f1

1. 땅 배치하기

이번에는 하단의 땅을 배치해보겠습니다. 우선 새가 날개짓을 하고 있을 때 앞으로 가는 느낌을 주기 위해서는 땅이 움직이는 효과를 주는 방법이 있습니다. 먼저, 땅 object를 화면에 배치합니다. 다음으로, 땅을 옆으로 늘린 후 움직이는 것을 애니메이션을 통해 진행합니다. 이때, 땅을 그대로 늘리면 타일이 늘려뜨리는 모습을 확인할 수 있습니다. 이때, Inspector 창에서 Draw Mode를 Tiled로 변경하게 되면 규칙성이 유지되면서 타일처럼 늘어나게 됩니다.

왼쪽이 Simple 일때고, 오른쪽이 Tiled 일때인데 앞서 설명한 말을 그림으로 보는 게 더 이해하기 쉬울 것 같아 넣었습니다.

이렇게 Tiled로 변경한 후 땅을 늘려줍니다. 다음으로 앞선 포스트의 BirdFly와 동일하게 Create Animation을 해줍니다. 그리고 애니메이션 옆의 녹화 버튼을 눌러줍니다. 녹화 버튼을 누른 후 Ground 이미지를 오른쪽으로 살짝 옮겨줍니다. 그럼 Bird와 동일하게 다이아몬드 (키 프레임)가 추가된 것을 확인할 수 있습니다.

그리고 녹화버튼을 누른 후 마우스 휠을 이용해서 (위에서 아래로) 타임라인을 더 길게 잡고 땅 오브젝트를 움직입니다. 키 프레임이 생성되면 Space Bar을 눌러 애니메이션을 재생할 수 있습니다.

이때 땅의 평행사변형 모양이 다음과 같이 되도록 맞춰줍니다. (그래야 그 다음 과정에서 자연스레 이어지는 것처럼 보입니다!)


이 상태에서 재생을 해보면 땅이 처음에는 빠르다 마지막에는 느려지는 현상을 보입니다. 이를 해결하기 위해 키 프레임을 모두 잡고 Both Tangents - Linear 설정을 해줍니다. 이렇게 되면 일정한 간격으로 애니메이션이 돌아가게 됩니다.

2. 중력 추가하기

지금까지 가장 기본적인 UI 배치를 진행하였습니다. 현재 Game을 실행해보면 새가 퍼덕이고 땅은 움직이는 상태입니다. 플래피 버드는 새가 기본적으로 땅으로 떨어지려 하는 상태에 있고, 사람이 터치를 하여 새를 점프하게 만들면서 장애물을 피해가는 게임입니다. 따라서, 새가 중력을 받도록 구현해야합니다. 유니티에서는 정말 편하게 오브젝트에 중력을 적용할 수 있습니다.

Hierarchy View에서 Bird object 선택 -> Inspector 창에서 Add Component -> Rigid 검색 후 Rigidbody 2D 선택

3. 물리 경계 추가하기

적용 후 실행해보면 새가 중력을 받아 게임 화면에서 떨어지는 것을 볼 수 있습니다. 하지만 현재는 땅을 통과해서 떨어지는 것으로 보입니다. 지금부터는 새가 바닥에 닿으면 떨어지지 않도록 만들어보겠습니다.

Hierarchy View에서 Bird object 선택 -> Inspector 창에서 Add Component -> Collider 검색 후 Capsule Collider 2D 선택

  • Collider: 물리적으로 부딪혔을 때 경계를 나타내는 영역을 의미합니다.
    콜라이더를 적용하면 Scene View에서 초록색 원 형태로 새가 감싸져 있는 것을 확인할 수 있습니다. 이 경계 영역에 맞춰 물리적인 것이 적용됩니다.
  1. 경계를 새의 모양에 맞추고자 먼저 Capsule Collider 2D의 Direction을 Horizontal로 변경해줍니다.
  2. 새의 모양에 잘 맞는 것을 Scene View에서 확인할 수 있는데, 더 세밀하게 변경을 원한다면 Edit Collider 버튼을 눌려 직접 점을 조절하는 방법도 있습니다.

다음으로 부딪힐 물체인 땅에도 똑같은 작업을 해줍니다. 한 가지 다른 점은 땅의 경우 사각형 형태이기 때문에 Collider를 선택할 때 Box Collider 2D를 선택하면 됩니다. 경계를 박스 크기에 맞추기 위해서 Auto Tiling을 선택합니다.

Hierarchy View에서 Ground object 선택 -> Inspector 창에서 Add Component -> Collider 검색 후 Box Collider 2D 선택

  • Auto Tiling: 해당 object의 크기에 맞게 경계 설정해주는 옵션

두 object에 대해 Collider를 설정해준 후 게임을 실행시키면 물리적으로 부딪히는 현상이 일어나는 것을 확인할 수 있습니다.

profile
하나씩 심어 나가는 개발 농장🥕 (블로그 이전중)

0개의 댓글