[Unity]01.로그라이크2D따라하기 #1 - 캐릭터와 적 만들어보기

안녕하세요 유랑입니다.




오늘부터 Unity3d 응용편을 진행하겠습니다.

유니티의 각종 기능들을 이용해서 간단하게 게임을 만들어 보겠습니다.




1. 로그라이크




오늘 배울 내용은 로그라이크 게임입니다.

로그라이크는 과거에 아스키 부호를 이용한 게임으로 시작하였는데,

대부분 한 번 죽으면 끝나는 시스템을 갖고있습니다.

대표적으로 굶지마, 던그리드 같은 게임이 있는데 점점 특색적인 모습들이 추가되는것 같아요.







2. 캐릭터 만들기




2-1) 프로젝트 생성



프로젝트 이름과 위치를 설정 후 2D를 선택 후 프로젝트를 만들어 줍니다.







2-2) 프로젝트 설정



프로젝트를 생성하면 다음과 같이 보일거에요.

Z축이 없어져 2D 화면이 나옵니다.

여기서 씬뷰에 있는 선택된 2D를 해제하면 다시 3D로 보이게됩니다.

단순히 화면이 보이는 차이니깐 프로젝트를 생성할 때가 아니더라도 중간에도 변경이 가능합니다.

프로젝트뷰에 있는 파일들과 래이아웃 설정은 여러분이 쓰시기 편하게 바꾸고 사용해주세요.

 





2-3) 에셋 다운



유니티에서 제공하는 2D 로그라이크 예제가 에셋스토어에 있기에 다운받아봅시다.

무료이고, 밑에 보이는 알림창이 뜰 경우 임포트를 눌러주세요.









2-4) 완성된 프로젝트 실행



임포트를 하고 파일을 받으면 완성된 게임씬이 존재합니다.

게임씬을 선택 후 실행하여 앞으로 만들 게임에 대해 알아봅시다.









2-5) 플레이어 오브젝트 만들기



GameObject -> Create Empty를 선택 후 생성하고, 이름을 다음과 같이 바꾸자.







2-6) 플레이어 애니메이션(대기상태) 만들기



아까 받은 에셋에 들어있는 스프라이트를 이용하여 플레이어 애니메이션을 만들어 볼게요.

우선 다음 폴더에 들어간 후 Scavengers_SpriteSheet_0 ~ Scavengers_SpriteSheet_5를 드래그하여 

플레이어 오브젝트에다가 가져다 놉니다.

마우스로 드래그앤 드롭을 하세요.



 




스프라이트들을 플레이어에다가 가져다 놓으면 다음과 같이 애니메이션을 저장할 위치를 보여줄거에요.

원하시는 위치로가서 다음과 같이 저장해 봅시다.







플레이어 오브젝트를 선택하면 Sprite Renderer와 Animator가 각각 생겨있을거에요.

Sprite Renderer는 스프라이트 프레임을 보여주고,

Animator는 애니메이션을 재생시켜주는 역할을 합니다.







2-7) 플레이어 애니메이션(공격상태) 만들기



이번에는 Scavengers_SpriteSheet_40 ~ Scavengers_SpriteSheet_41을 드래그하여 공격모션을 만들어 볼게요.







아까같은 위치에 플레이어 공격 애니메이션을 저장시켜봅시다.







2-8) 플레이어 애니메이션(맞는상태) 만들기



이번에는 Scavengers_SpriteSheet_46 ~ Scavengers_SpriteSheet_47을 드래그하여 맞는모션을 만들어 볼게요.







플레이어 맞는 애니메이션을 저장시켜봅시다.







2-9) 애니메이터 



만들어진 애니메이션 위에 Player라는 애니메이터가 존재할겁니다.

애니메이터를 실행 시키면 다음과 같은 화면이 보일거에요.

Entry에서 PlayerIdle로 가는 화살표 그림이 보이실텐데, 

게임을 시작하게 되면 해당 애니메이터를 가지고 있는 캐릭터가 

PlayerIdle 애니메이션을 실행하게 됩니다.

애니메이터는 이처럼 캐릭터의 애니메이션 상태를 조절 가능합니다.









2-10) 애니메이션 속도 조절



실행시키면 캐릭터의 모션이 빠를거에요.

애니메이터뷰 안에있는 PlayerIdle을 선택 후 Speed를 0.5로 변경해볼게요.









2-11) Player의 Tag와 Layer 설정



Player의 Tag와 Layer를 밑에 있는 그림처럼 설정하자.

Sorting Layer를 통해 렌더링의 순서를 정의해주자.

여기서 BlockingLayer는 충돌처리를 담당하는 레이어이고, 

SortingLayer는 이미지가 겹쳐있을때의 보여줄 순서를 정의해준다.









2-12) Player의 Box Collider 2D와 Rigid Body 2D추가



캐릭터의 충돌처리에 의한 이벤트 처리를 위해 Box Collider 2D와 Rigid Body 2D를 추가하자.

콜라이더의 사이즈는 캐릭터 보다 조금 작게 만들어 주고, 

물리작용은 필요 없으므로 Body Type은 Kinematic으로 바꾸어 주자.







2-13) Player 프리팹 만들기



지금까지 설정해 놓은 Player를 드래그앤 드랍을 이용해서 프리팹을 만들자.

필자는 다음과 같은 위치에 만들어 놓았다.







3. 적 만들기




3-1) Enemy1 오브젝트 만들기



GameObject -> Create Empty를 선택 후 생성하고, 이름을 다음과 같이 바꾸자.







3-2) 적1 애니메이션(대기상태) 만들기



플레이어 애니메이션을 만든것처럼 적 애니메이션을 만들어 볼게요.

Scavengers_SpriteSheet_6 ~ Scavengers_SpriteSheet_11를 드래그하여 

 오브젝트에다가 가져다 놉니다.

마우스로 드래그앤 드롭을 하세요.







원하시는 위치로가서 다음과 같이 저장해 봅시다.







3-3) 적1 애니메이션(공격상태) 만들기



이번에는 Scavengers_SpriteSheet_42 ~ Scavengers_SpriteSheet_43을 드래그하여 공격모션을 만들어 볼게요.







적1 공격 애니메이션을 저장시켜봅시다.






3-4) Enemy1의 Box Collider 2D와 Rigid Body 2D추가



플레이어와 마찬가지로 적1도 다음과 같이 설정하자.







3-5) Enemy1 프리팹 만들기



지금까지 설정해 놓은 Enemy1을 드래그앤 드랍을 이용해서 프리팹을 만들자.

필자는 다음과 같은 위치에 만들어 놓았다.







3-6) Enemy2 오브젝트 만들기



GameObject -> Create Empty를 선택 후 생성하고, 이름을 다음과 같이 바꾸자.







3-7) 적2 애니메이션(대기상태) 만들기



플레이어 애니메이션을 만든것처럼 적 애니메이션을 만들어 볼게요.

Scavengers_SpriteSheet_12 ~ Scavengers_SpriteSheet_17을 드래그하여 

 오브젝트에다가 가져다 놉니다.

마우스로 드래그앤 드롭을 하세요.







적2 대기 애니메이션을 저장시켜봅시다.






3-8) 적2 애니메이션(공격상태) 만들기



이번에는 Scavengers_SpriteSheet_44 ~ Scavengers_SpriteSheet_45를 드래그하여 공격모션을 만들어 볼게요.







적2 공격 애니메이션을 저장시켜봅시다.






3-9) Enemy2의 Box Collider 2D와 Rigid Body 2D추가



플레이어와 마찬가지로 적2도 다음과 같이 설정하자.







3-10) Enemy2 프리팹 만들기



지금까지 설정해 놓은 Enemy2를 드래그앤 드랍을 이용해서 프리팹을 만들자.

필자는 다음과 같은 위치에 만들어 놓았다.







3-11) 오버라이드 컨트롤러



컨트롤러는 Player, Enemy1, Enemy2 총 세개가 만들어 져야한다.

기존에 있는 Enemy2 컨트롤러를 삭제하자.

이유는 Enemy1과 Enemy2의 쓰임새가 똑같기때문이다.

마우스 우클릭해서 Animator Override Controller를 만들고 밑에 그림 처럼 설정해보자.











4. 마무리




오늘 강의는 여기까지입니다.

2d 프로젝트를 만들고 캐릭터와 적 애니메이션까지 만들어 보았습니다.

다음 시간에는 배경에 쓰일 타일에 대해 알아보겠습니다.

감사합니다.




수업자료: https://github.com/YouRang12/-Tistory-Unity---2D







댓글

Designed by JB FACTORY