나만의 작은 도서관

[Unity] 강의 따라하기 #1. 2D 플랫포머-프로젝트 준비하기 본문

Unity/강의 따라하기

[Unity] 강의 따라하기 #1. 2D 플랫포머-프로젝트 준비하기

pledge24 2024. 7. 21. 00:05

 

2D에서는 Light를 잘 사용하지 않는다.

3D와 달리 2D에서는 Light가 없어도 잘보인다. Light를 사용할 수는 있지만, 2D플랫폼으로 생성하게 되면 기본적으로 Light가 없는 상태로 만들어 지기 때문에 아래와 같이 아무것도 보이지 않고 Game은 그저 푸른 화면만이 보인다. 화면의 색깔은 카메라의 백그라운드 색상으로 정해지므로, 메인카메라에서 카메라 컴포넌트에서 백그라운드 색깔을 바꿔줄 수 있다. 

 

Sprite 사용해보기

Sprite는 2D그래픽 오브젝트로, 3D에서 cube같은 오브젝트를 사용하듯 사용하면 된다. 생성하는 방법은 아래와 같이 생성한다. 9-sliced, capsule등 다양한 종류들의 sprite들이 있는데, 뭘 선택해야할 지 모르겠다 싶으면 9-sliced를 선택하고 쓰면된다. sprite모양만 바뀌는거니 이것저것 사용해보면 된다. sprite생성할 때 들어있는 sprite Renderer에서 sprite속성을 바꿔주면 다른 종류의 sprite모양으로 바꿀 수 있다. 

 

2D에서 Scene/Game화면 다뤄보기

z축이 없는게 아니다.

2D템플릿은 z축이 없을거라 생각하는데, 실제로는 아주 잘 존재한다. 아래 그림처럼 2D view를 해제하면 익숙한 3D지형에서 만들어지는 것을 볼 수 있다. 3D환경에서 2D처럼 카메라를 고정했다고 생각하면 된다. 그래서 3D 오브젝트인 큐브도 생성할 수 있다.

2D인척하는 3D!

카메라 사이즈 바꾸기

메인 카메라의 size를 바꾸면 Game화면이 확대/축소가 된다. 원리는 간단하다. 카메라가 담을 화면의 정사각형의 길이를 바꾸는 거다. 그래서 size를 바꾸면 Scene에서 카메라의 촬영 범위가 바뀌는 걸 볼 수 있다.

size=5(왼쪽), size=10(오른쪽)

Orthographic? Perspective?

카메라 컴포넌트에는 Projection이라는 속성이 있다. 여기에는 Orthographic과 Perspective가 있는데, Orthographic은 원근법 없는, Perspective는 원근법이 있는 설정이다. 원근법이 있게되면 소실점이 존재하게 되며, z축이 카메라에서 멀어질수록 멀어진 거리에 비례하여 물체가 작게 보인다. 반대로, 원근법이 없게되면 z축과 상관없이 모든 물체가 동일한 크기로 보인다. 2D는 원근법을 적용하지 않기 때문에 Orthographic를 사용하면 된다.

컴퓨터 그래픽스 수업이 생각나는 그림

 

유니티에서도 이렇게 나온다.

Orthographics(왼쪽), Perspective(오른쪽)

 

만약, 카메라의 담을 화면의 범위를 변경하고 싶다면 카메라 컴포넌트에서 Clipping Planes, Viewport Rect의 설정 값을 변경하면 된다. 

 

레이어 순서 설정하기

레이어 순서를 앞으로 설정하는 방법은 2가지 방법으로 설정할 수 있다.

  1. z축을 이용해 스프라이트를 앞에 배치하는 방법
  2. Sprite Renderer컴포넌트의 Order In Layer 수치 더 크게 변경하는 방법

정석은 2번이지만, 사실 1번도 나름 편하다. 알아서 쓰면 될 것 같다.

 

Gizmo로 카메라 아이콘 크기 변경

Gizmo를 눌러서 설정 창을 열어주면 3D icons가 나오는데 값을 바꿔주면 아래와 같이 아이콘 크기를 변경할 수 있다

 

물리 시스템 적용해보기

물리 시스템을 적용하려면 2가지의 컴포넌트가 필요하다.

  • Box collider 2D: 충돌 이벤트를 처리하는 박스형 영역
  • Rigidbody 2D: 물리를 적용하는 컴포넌트

Rigidbody는 다양한 물리 이벤트가 발생되도록 설정하는 것이고, 해당 물리 이벤트는 물리적인 상호작용(이동, 충돌 등등...)이 발생해야지만 의미가 있기 때문에 collider속성을 추가하는 것이다. 

collider는 collider들끼리 충돌 이벤트가 발생하며, rigidbody가 있는 경우 충돌 시 물리가 적용된다.

따라서, 중력을 받으면 안되는 맵 타일은 collider만, 중력을 받아야하는 캐릭터는 collider, rigidbody 둘 다 추가한다.

 


따라한 강의 영상

https://www.youtube.com/watch?v=v_Y5FH_tCpc