유니티

유니티 3D 간단한 RPG 게임 만들기 (3) - 플레이어 생성 및 이동

Voitcon 2023. 6. 4. 00:53

안녕하세요 세번째 글로 찾아뵙게 되었습니다.

 

우선 플레이어를 생성하기 전에 모델링을 찾아야합니다.

 

모델링은 유니티 에셋 스토어에서 구할 수 있습니다.

https://assetstore.unity.com/

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

에셋 스토어에서 가볍게 하실거면 무료로 받으시는것을 추천드립니다.

그리고 에셋스토어에서 다운 받기전에 로그인하셔야합니다!!

이번 강의 사용 에셋은 유니티의 대표주자 유니티짱입니다.

https://assetstore.unity.com/packages/3d/characters/unity-chan-model-18705

 

Unity-Chan! Model | 3D 캐릭터 | Unity Asset Store

Elevate your workflow with the Unity-Chan! Model asset from unity-chan!. Find this & other 캐릭터 options on the Unity Asset Store.

assetstore.unity.com

내 에셋에 추가를 누르자

내 에셋에 추가를 누르면 상단에 유니티에서 열기라고 뜨는데 유니티에서 열기를 클릭해줍시다.

 

그럼 패키지 매니저 창이 뜨는데,. 항목 선택후에 다운로드를 해줍니다.

다운로드후에 임포트를 누르자

임포트를 하고나면 이제 하단 프로젝트에 폴더가 하나 생겼을겁니다.

일단 진행하기전에 폴더 정리부터 해줍시다.

Character 폴더와 Script 폴더를 추가해주세요!

각각의 폴더를 생성 후에 방금 받은 폴더는 Character 폴더에, 이전에 작성한 test 스크립트는 Script에 넣어주세요.

실습을 진행하기전에 하이라키에서 우클릭->Create->3d object ->plane(평면) 생성

일단 실습을 위해 임시로 평면을 하나 생성해줍시다.

Character -> unity-chan -> unity chan model -> prefabs 로 가보자

해당 폴더로 가서 폴더 안에 있는 Unitychan 모델링을 씬화면으로 끌어 당겨 배치해줍시다.

 

여기서 unitychan 의 포지션 값을 x,y,z 각각 0,0,0으로 변경해주시고 붙어 있는 스크립트는 모두 제거해주도록 합시다.

 

그 다음에 PlayerManager 스크립트를 생성하자.

PlayerManager 라는 이름으로 스크립트를 하나 생성해줍시다.

주석이 달려있으니 직접 타이핑해서 코드를 쳐보자

우선 우리가 움직이는 것을 알아보기위해 위의 코드만 짠후에 Input.GetAxis("Horizontal")과 Vertical이 각각 무엇을 하길래

float 값에 대입하는지 디버깅을 통해 알아봅시다.

유니티짱에 해당 스크립트를 붙여주고 기존에 붙어 있던 애니메이션도 없음으로 바꿔주자

플레이어에게 스크립트를 붙여줍시다.

카메라 위치 값도 -1.6 1.9 4.8로 수정해주자

카메라 위치값은 ctrl + shift + f 로 원하는 위치에서 카메라 위치를 고정가능합니다.

 

이제 실행시켜 디버그 창을 뛰어보자

디버그 창을 확인 해보면 w 를 누르면 점점 1에 가까워지고 s 는 -1 , a도 -1, d는 1에 가까워지는것을 볼 수 있습니다.

이러한 float 값을 가지는것을 알 수 있고 해당 float값을 기준으로 플레이어의 벡터값을 움직이게 하면 플레이어가 이동할 수 있다는 것입니다.

이제 진짜 움직일 수 있게 스크립트를 짜보자

주석을 확인하고 직접 타이핑하여 코드를 짜봅시다.

디버그 부분은 지우셔도 됩니다.

스크립트를 작성하고 컴파일 뒤에 movespeed 값은 5 , 리지드 바디 캡슐콜라이더를 추가하자.

캡슐콜라이더는 콜라이더 편집 옆에 아이콘을 클릭하여 모델링에 맞게 범위를 잘 설정해주시면됩니다.

rigidbody가 있는 오브젝트는 중력이 작동하는데, 만약 콜라이더가 없으면 계속해서 떨어지기 때문에 rigidbody가 있는 오브젝트에 콜라이더도 같이 붙여줘야합니다. 물론 콜라이더는 콜라이더 끼리 닿아야 작동을 하는데, 우리는 아까 평면을 만들었습니다. 평면에는 메쉬 콜라이더라는 콜라이더가 붙어있습니다.

 

이제 play 버튼을 눌러 확인해보자

우리의 플레이어가 잘 움직이는 것을 확인할 수 있습니다.

하지만 애니메이션이 없어서 많이 어색하죠

다음에 애니메이션을 추가해보도록 합시다.

 

 

https://github.com/rhwjdtjs/Unity_Lec_from_Tistory

 

GitHub - rhwjdtjs/Unity_Lec_from_Tistory: check my Tistory

check my Tistory. Contribute to rhwjdtjs/Unity_Lec_from_Tistory development by creating an account on GitHub.

github.com

강의에 사용되는 스크립트가 있는 깃허브입니다. 스크립트 오류 날시 확인해보세요

 

간단한 RPG 게임 시리즈 진행 예정

(1) 유니티 설치하기 -> (완료)

(2) 유니티 기본 사용법 -> (완료)

(3) 플레이어 생성 및 이동 -> (완료)

(4) 플레이어 애니메이션 및 무기 들기 -> (6월 14일)

(5) UI 다뤄보기 -> (6월 16일)

(6) 적 구현 -> (6월 19일)

(7) 스탯 구현 -> (6월 20일)

(8) 터레인 -> (6월 21일)

(9) 그래픽 및 메인화면 -> (6월 22일)