# 닷지 플레이어 제작 1
#1 씬 구성하기
먼저 프로젝트를 생성하고 플레이어가 움직일 공간을 만들어 줄 거다. 제작할 씬은 정사각형의 공간에 사방이 벽으로 막혀있고, 플레이어가 그 안에서 자유롭게 움직일 수 있어야 한다. 우선 유니티 허브를 실행하고 아래와 같이 새로운 프로젝트를 만들어준다.
그다음 레벨의 바닥과 벽을 만들어 줄 거다. 하이어리키 창에서 Create -> 3D Object -> Plane을 클릭해준다.
그다음 가로와 세로의 길이를 늘려줘야 한다. 인스펙터 창에서 게임 오브젝트의 트랜스폼 컴포넌트의 스케일을 (2, 1, 2)로 변경해준다.
유니티에서 게임 오브젝트의 컬러는 머티리얼이 결정한다. 머티리얼은 셰이더와 텍스처가 합쳐진 에셋으로, 오브젝트의 픽셀 컬러를 결정한다. 프로젝트 창에서 Create -> Material 클릭하여 머티리얼을 생성해주고 이름을 Plane Color로 변경해준다. 그리고 클릭하면 아래와 같이 인스펙터 창에서 Albedo를 클릭하여 색을 검은색으로 변경해준다.
그다음 생성된 머티리얼을 Plane게임 오브젝트로 드래그하면 씬 창에서의 Plane 게임 오브젝트가 검은색이 되는 것을 확인할 수 있다.
그다음 게임 도중 플레이어가 바닥을 벗어날 수 없도록 Plane 게임 오브젝트 사방에 벽을 추가해 줄 거다. 하이어리키 창에서 Create -> 3D Object -> Cube를 클릭한 뒤, 생성된 Cube 게임 오브젝트의 이름을 Wall로 변경해준다. Wall의 위치는 (0, 0.5, 10) 스케일은 (20, 1, 1)로 변경해 준다.
다 만들게 되면 위와 같이 벽이 하나 생긴 것을 확인할 수 있다. 뒤쪽에도 벽을 만들어주기 위해 하이어리키 창에서 Wall 게임 오브젝트를 선택한 뒤 Ctrl +D로 복제해주고 복제한 위치를 (0, 0.5, -10)으로 변경해준다. 그리고 나머지 양쪽에도 벽을 설치해 주기 위해 위와 같은 방법으로 복제를 두 번 해준다. 그 뒤 복제한 위치를 (10, 0.5, 0) 그리고 (-10, 0.5, 0), 스케일을 (1, 1, 20)으로 변경해준다.
위와 같이 사방에 벽을 설치해주면 완성이다. 여기까지 완성하면 표시되는 게임 오브젝트가 많아져 하이어라키 창이 복잡해 보인다. 그래서 레벨을 구성하는 게임 오브젝트들을 하나의 게임 오브젝트 아래에 모아서 정리해준다. 하이어라키 창에서 빈 게임 오브젝트를 생성해주고, 생성된 게임 오브젝트의 이름을 Level로 변경해준 뒤, Level 게임 오브젝트의 위치를 리셋시켜준다. 그다음 하이어라키 창에서 Plane부터 Wall(3)까지 모두 선택하여 Level 게임 오브젝트로 드래그해준다.
위와 같이 바닥과 벽 게임 오브젝트들이 Level 게임 오브젝트의 자식이 된 것을 확인할 수 있다.
#2 카메라 설정하기
게임창에서 레벨 전체가 한눈에 보이도록 카메라를 배치한 뒤, 배경색을 짙은 회색으로 바꾸어 줄 거다. 현재 아래와 같은 게임창에서는 레벨이 한눈에 보이지 않는다. 이를 한눈에 내려다볼 수 있도록 옮겨줄 거다.
하이어라키 창에서 Main Camera 게임 오브젝트를 선택한 뒤, 메인 카메라의 위치를 (0, 15, -10)으로 변경해주고, 회전을 (60, 0, 0)으로 변경해준다.
위와 같이 설정해주면 아래와 같이 게임 화면이 전체적으로 보이게 된다.
카메라 컴포넌트는 기본값으로 배경을 가상의 하늘인 스카이박스로 채우도록 설정되어있지만 닷지 게임에서는 스카이박스가 어색하기 때문에 단색으로 배경을 변경해준다. Main Camera 게임 오브젝트의 Camera 컴포넌트에서 Clear Flags의 값을 Solid Color로 변경해주고, Background의 컬러 필드를 클릭하여 컬러 창에서 RGB 값을 (36, 36, 36)으로 변경하기. 다시 게임창을 확인하면 아래와 같이 배경이 짙은 회색으로 변경되어 있는 것을 확인할 수 있다.
#3 플레이어 제작
이제 스크립트를 사용해서 조작할 수 있는 플레이어 게임 오브젝트를 만들어준다. 플레이어 게임 오브젝트는 다음과 같은 기능을 가진다. 파란색 캡슐 모양이고, 상화좌우 혹은 WASD 키로 움직일 수 있고, 탄알에 맞으면 죽는다. 먼저 하이어라키 창에서 Create -> 3D Object -> Capsule을 만들어준다. 그 뒤, 캡슐 게임 오브젝트의 이름을 Player로 변경해준 뒤, 위치를 (0, 1, 0)으로 변경해준다.
다음은 프로젝트 창에서 Create -> Material을 클릭하여 머티리얼의 이름을 Play Color로 변경해준다. 그 뒤 Albedo 컬러를 (0, 100, 164)로 변경해준다. 그러면 아래와 같이 파란색 캡슐 형태의 Player 게임 오브젝트가 만들어졌다.
나중에 탄알을 만들 때 탄알 입장에서 충돌한 게임 오브젝트가 플레이어 인지 확인할 방법이 필요하기에 게임 오브젝트의 태그를 사용해준다. 태그는 게임 오브젝트를 분류하고, 코드에서 게임 오브젝트를 구별하는 데 사용된다. 하이어라키 창에서 Player 게임 오브젝트를 선택한 뒤, 인스펙터 창의 Tag를 클릭해주고 Player 태그로 선택해준다.
위와 같이 태그를 설정하면 나중에 탄알이 Player 게임 오브젝트와 충돌했을 때만 게임오버가 실행되게 할 수 있다. 탄알 입장에서 충돌한 상대방 게임 오브젝트의 태그가 Player인지 체크해주면 되기 때문이다.
Player 게임 오브젝트를 움직이는 데는 물리적인 힘과 속력이 필요하다. 따라서 Player 게임 오브젝트가 물리적인 상호 작용이 가능하도록 리지드바디 컴포넌트를 추가해준다. 이제 Player 게임 오브젝트는 물리 상호작용이 가능하다. Player 게임 오브젝트가 넘어지는 것을 막기 위해 리지드 바디의 제약 옵션을 사용한다. 제약을 사용하면 어떤 축의 위치나 회전이 변경되지 않게 고정할 수 있다.
이제 Player 게임 오브젝트의 높이가 변경되지 않으면 오직 Y축으로만 회전할 수 있다.