2023. 7. 19. 01:56ㆍC# & Unity 공부
우리는 여태까지 Unity 3D를 연습했었다.
한 개의 프로젝트가 완성되었으니, 이번에는 2D를 진행하여 보자.

보는 바와 같이 2D 프로젝트를 하나 만들면, 다음과 같이 생성된다.
이것을 보면 3D와는 다르게 빛을 나타내주던 Light는 없고,
Main Carmera만 있는 것을 확인할 수 있다.

Main Carmera를 누르고 Inspector 창에 나타난 것들 중에,
Background를 누르면 색상을 조절할 수 있다.
Sprite
SpriteRenderer : 스프라이트를 보여주는 컴포넌트 (Inspector 창의 Transform 아래에 있는 것)

2D 오브젝트 중 Sprite에 대하여 배워보자.
우선 Sprite를 생성해 보자.

다음과 같이 생성된다.
그리고 Sprite에 InputFieldBackground를 넣어보자.

그리고 Game창을 확인해보면,

Main Camera를 선택하고 Size를 1로 조절해보자.

그렇게 되면,

Camrea > Size : Size를 조절하여 줌인, 줌아웃을 할 수 있다.
그리고 카메라의 위치를 이동시키면,

다음과 같이 카메라가 이동한 것을 확인할 수 있다. (흰 색 사각형이 움직인 것이 아님)
3차원으로도 확인이 가능하다. Scene 창 오른쪽 위의 2D를 끄게 되면,

위와 같이 확인이 가능하다.
그러나, 카메라의 파란색 Z축을 이동하여도, Game 창의 오브젝트의 크기는 변하지 않는다.
그 이유는, Main Carmera의 Inspector 창에서 확인할 수 있다.

Projection > Perspective : 원근법이 있는 정사영 투시
Projection > Orthographic : 원근법이 없는 정사영 투시
그리하여, Orthographic에서 Perspective으로 바꾸면,

오브젝트와 가까이 할 시 (z축 이동 시), 원근법이 적용되어서 커진 것처럼 보인다.
렌더 순
오브젝트를 2개 만들었다고 가정을 하자 화면에서 볼 때 렌더 순서를 조절하는 방법을 알아보자.
1. Z축을 활용한다.

뒤에다가 나타내고 싶은 물체를 Z축을 이용하여 뒤로 뺸다.
2. 앞으로 빼고 싶은 오브젝트의 Order in Layer에 큰 숫자를 넣는다. (두 오브젝트의 Z축값이 같아도 상관 없음)

그리고 Sorting Layer > Add Sorting Layer을 눌러서 추가하면,
3D Item을 관리했던 것처럼 묶어서 관리할 수 있다.
픽셀아트 조정
다음은, 픽셀 아트를 불러오고 조정해볼 것이다.
위 사진의 사각형들은, Unity에서 기본적으로 제공하는 UI들이다.
그래서 Asset store에서 다운받아와서 써볼 것이다.
https://assetstore.unity.com/packages/2d/characters/simple-2d-platformer-assets-pack-188518
Simple 2D Platformer Assets Pack | 2D 캐릭터 | Unity Asset Store
Elevate your workflow with the Simple 2D Platformer Assets Pack asset from Goldmetal. Find this & more 캐릭터 on the Unity Asset Store.
assetstore.unity.com
파일을 다운받아서 Editor로 불러오자.
Sprites에 들어가서 이미지를 선택해보자.
3D 프로젝트 때에는 그래픽을 선택하면 보통 default로 되어 있었다.
하지만, 2D 프로젝트 때에는, Sprite (2D and UI)로 자동 선택되어있다.

그러므로 원하던 Sprite를 불러와서 SpriteRender의 Sprite에 넣으면 된다.
아래 사진처럼 우선 만들어보자.

우선 그래픽을 설정해보자.
저런 캐릭터 형태의 그래픽을 픽셀아트(도트)라고 한다.

Sprite를 선택하고 Filter Mode를 선택하게 되면 위 사진과 같이 나타난다.
Bilinear과 Trilinear은 파일을 압축시켜 번지르르하게 나타내는 것이고,
Point는 아무 필터없이 깔하게 잘 나오게 된다.
1. 그래서 2D는 무조건 Point로 준다.

2. 그리고 압축률을 나타내는 Compression은 None으로 선택해준다.
도트 그래픽은 압축을 시킬 필요가 없기 때문이다.

3. Pixel Per Unit은 16으로 맞춰준다.
위 사진에서 Pixel Per Unit이 뭔지 모를 것이다.

위 사진의 파란색 한 칸에 16X16으로 픽셀이 들어가도록 하는 것이다.
우리가 준비한 저 캐릭터는 16X16이므로, 16에 맞춰주면 된다.
물리 적용
3D에서 했던 것과 똑같이 물리법칙을 적용시켜 주겠다.
우선 오브젝트 전부에다가 Box Collider 2D를 Add Component를 통하여 넣어준다.
이때 3D가 아니기 때문에 2D를 사용해준다.
또한, 캐릭터에다가는 중력을 주기 위하여 Rigidbody 2D를 넣어준다.
그리고 실행시켜 보면,

잘 작동하는 것 같으나,
우리가 분명히 Box Collider 2D 설정을 통하여 범위를 잘 잡아주었는데도
땅과 캐릭터 사이의 미묘한 틈(?)이 존재한다.
이것을 잡아볼 것이다.

Edit > Project Settings를 누르고 Physics 2D에 있는
Default Contact Offset을 줄여줄 것이다. (0.0001이 최솟값이다. 그걸로 바꾸어주자.)
충돌 여백을 나타내는 것이다.
바꾸어주고 나면,

빈틈이 사라진 것을 확인할 수 있다.
오늘은 2D 프로젝트를 만들기 전에 가볍게 알아야 할 내용들을 알아보았다.
'C# & Unity 공부' 카테고리의 다른 글
| Unity 2D - 3. 플레이어 이동 구현하기 (0) | 2023.07.21 |
|---|---|
| Unity 2D - 2. 아틀라스와 애니메이션 (0) | 2023.07.20 |
| 9-2. 첫 번째 프로젝트 (결승점, 장면, 스테이지 추가, UI생성, 빌드) (0) | 2023.07.12 |
| 9-1. 첫 번째 프로젝트 (플레이어, 아이템, 카메라) (0) | 2023.07.10 |
| 8. 게임 인터페이스 구현 (1) | 2023.07.08 |