21. 타일맵(Tile Palette)

Hierarchy 창에서 ‘+’를 눌러 아래와 같이 타일맵을 추가해 줍니다.

Scene 창에서 아래와 같이 Tile Palette 창을 열어 새로운 Tile Palette를 만들어 줍니다.

아래와 같이 Tile Palette 창에서 새로운 Tile Palette를 만들어 줍니다.

만들어진 Tile Palette에 사용할 타일 이미지를 드래그 & 드롭해 줍니다.

아래와 같이 Tile Palette 창에서 사용할 타일들이 배치된 것을 확인하실 수 있습니다.

전자책 구매

20. 스프라이트 자르기

배경으로 사용할 이미지 파일을 보면 여러개의 이미지가 1개의 파일로 되어있습니다.

이런 경우 각각의 이미지를 이용하기 위해 잘라 주어야 합니다.

아래와 같이 Project 창에서 사용할 이미지 파일을 선택해주고 Inspector 창에서 Sprite Mode를 Multiple로 변경해 줍니다.

Window -> 2D -> Sprite Editor 창 열기(Sprite Editor를 찾을 수 없는 경우 패키지 매니저에서 2D Sprite 를 추가해 줍니다.)

Sprite Editor 창에서 아래와 같이 이미지를 잘라 줍니다.

아래와 같이 이미지가 잘린 것을 확인하실 수 있습니다.

전자책 구매

19. 패키지 매니저

2D 게임 제작시 자주 사용되는 Tilemap을 사용하기 위해 패키지 매니저에서 2D Tilemap Editor를 추가해 주겠습니다.

이제 타일맵을 사용할 수 있는 상태가 되었습니다.

다음은 제가 사용하고 있는 Package들 입니다. 특정 창이 보이지 않는 경우 아래에 사용하고 있는 Package를 추가하시면 Window에서 불러올 수 있습니다.

전자책 구매

18. 소리 적용

Player가 점프시 소리를 적용해 보겠습니다.

Project 창에서 Assets 폴더 아래에 Audio 폴더를 만들고 점프시 사용할 사운드 파일을 넣습니다.

PlayerMove 스크립트를 열어 AudioClip을 추가해 주고 점프시 재생될 수 있도록 아래와 같이 작성해 줍니다.

Hierarchy 창에서 Player 게임 오브젝트를 클릭하고 점프시 사용할 사운드 파일을 드래그 & 드롭해 줍니다.

게임을 플레이해 확인해 보면 점프시 소리가 재생되는 것을 확인해 보실 수 있습니다.

C# 소스

전자책 구매

17. 캐릭터 점프

스페이스바를 눌러 Player가 점프하도록 만들어 보겠습니다.

PlayerMove 스크립트를 열어 아래와 같이 관련 변수를 먼저 정의해 줍니다.

위에서 정의한 변수들의 초기값을 작성해 줍니다.

스페이스바를 눌렀을 때 항상 점프할 수 있도록 Update() 메서드 안에 아래와 같이 코드를 작성해 줍니다.

아래와 같이 충돌관련 메서드를 이용해 Player가 바닥에 있는 상태있지 점프한 상태인지 판단해 줍니다.

게임을 플레이해 스페이스바를 눌러보시면 Player가 점프하는 것을 확인하실 수 있습니다.

C# 소스

전자책 구매

16. 애니메이션 추가

Player가 움직일 때 애니메이션을 추가해 보겠습니다.

Hierarchy 창에서 Player를 클릭해 줍니다.

Animation 창에서 아래와 같이 ‘Create New Clip’을 클릭해 줍니다.

추가된 Run 애니메이션이 캐릭터가 움직일 때 적용될 수 있도록 해주기 위해, 먼저 아래와 같이 Animator 창을 추가해 줍니다.

Animator 창에서 Player의 움직임 여부를 판단할 때 사용할 Parameter를 추가해 줍니다.

아래와 같이 Idle 애니메이션에서 Run 애니메이션을 화살표로 연결해 줍니다.

같은 방법으로 Run 애니메이션에서 Idle 애니메이션도 화살표를 추가해 줍니다.

Idle -> Run 방향의 화살표를 선택해 애니메이션이 변경되는 조건을 추가해 줍니다.

Inspector 창에서 아래와 같이 애니메이션이 Idle -> Run 바뀌는 조건을 변경해 줍니다.

같은 방법으로 parameter Running 이 false일 때 Run -> Idle로 변경되로록 해줍니다.

PlayerMove 스크립트를 열어 다음과 같이 코드를 수정해 줍니다.

게임 실행해서 확인해 보시면 Player 이동 유무에 따라 애니메이션이 바뀌는 것을 확인하실 수 있습니다.

C# 소스

전자책 구매

15. 스프라이트 반전시키기

이제 키보드를 통해 Player를 이동시킬 수 있지만, 왼쪽으로 이동시 플레이어가 오른쪽을 바라보고 있는 문제가 있는데 이동하는 방향을 바라보도록 수정해 보겠습니다.

PlayerMove 스크립트를 열어 아래와 같이 수정해 줍니다.

게임을 실행해 보시면 움직이는 방향으로 Player가 바라보는 것을 확인하실 수 있습니다.

전자책 구매

14. 캐릭터 이동

드디어 고대하시던 코딩의 시작입니다.

아래와 같이 Project 창에서 Assets 폴더 아래에 Scripts 폴더를 만들어 줍니다.

Scripts 폴더에 아래와 같이 PlayerMove 스크립트를 만들어 줍니다.

만들어진 PlayerMove 스크립트 파일을 작성하기 위해 더블 클릭하고, 키보드 A, D를 이용해 Player 가 좌우로 움직이도록 아래와 같이 스크립트를 작성해줍니다. 작성이 끝나면 Ctrl + S를 눌러 작성한 코드를 저장해 줍니다.

아래와 같이 방금 만든 PlayerMove 스크립트를 Player 게임 오브젝트의 컴포넌트로 추가해 줍니다.

이제 게임을 실행 후 키보드 A와 D를 눌러보면 Player가 좌우로 움직이는 것을 확인해 볼 수 있습니다.

전자책 구매

13. 게임 오브젝트 추가

Player가 계속해서 떨어지는 것을 막기 위해 아래와 같이 Ground 오브젝트를 새로 만들어 주겠습니다.

새로 만든 Ground 오브젝트를 선택하고 Inspector 창에서 ‘Add Component’ 버튼을 눌러 ‘Box Collider 2D’를 추가해 줍니다.

Scene 창을 보면 녹색 테두리의 Ground 오브젝트가 추가된 것을 확인하실 수 있습니다.

게임을 플레이해보면 Player가 Ground와 충돌해 더 이상 아래로 떨어지지 않는 것을 보실 수 있습니다.

전자책 구매

12. Physics 적용

Player 캐릭터에 Physics를 적용해 보겠습니다.

먼저 충돌을 처리하는 Collider를 아래와 같이 추가합니다.

캐릭터 이미지에 맞게 Collider의 Offset과 Size를 수정해 줍니다.

캐릭터를 중심으로 녹색으로 표시된 것이 Collider인데 실제 게임에서는 안 보이지만 캐릭터가 차지하는 공간으로 볼 수 있고 다른 오브젝트와 충돌을 감지하기 위해 사용합니다.

다음으로 Physics 적용을 위해 Rigidbody 2D를 추가해 줍니다.

화면 상단 중앙에 플레이 버튼을 눌러 게임을 실행시켜 보시면 Game 창 또는 Scene 창에서 Player가 중력의 영향을 받아 아래로 떨어지는 것을 확인하실 수 있습니다.

전자책 구매