1인 개발로 3D 모델링까지 하기에는 부담이 컸습니다. 그러니 Unity에서 제공하는 무료 에셋을 이용해봅시다. 이곳에서 다운받아 임포트 해주세요.
아직 장황하게 맵을 설치할 필요는 없습니다. 해당 에셋을 다운받았나요? 그러면 빈 오브젝트를 설치하여 Mesh Renderer, Mesh Filter, Mesh Collider, DefaultGroundMaterial을 추가하여 기본 바닥을 생성합시다. 3DGameKit->Art->Models->Terrains에서 입맛대로 골라주세요.
어느정도의 장애물은 필요하니 Models->Environment->Rock에서 돌을 몇개 설치합시다.
해당 Ground가 있는 오브젝트를 Ground라는 빈오브젝트의 자식들로 둡니다. 그리고 Ground에 NaveMeshSurface 컴포넌트를 추가한뒤 CollectObjects를 Children으로 하고 Bake합니다.
맵과 플레이어가 충돌하면 빗겨가지 않고 그자리에서 버티는 경우가 있습니다. 예를 들면 점프하는 도중 벽에 충돌할때, W키를 누르면 공중에서 버티는 것이 있죠.
그것을 해결하기 위해 Physics Material을 Project창에서 생성합시다.
그리고 플레이어, 바닥, 벽에 적용할 해당 Physics Material의 값을 알맞게 설정해주세요.
플레이어가 자연스럽게 이동하도록 환경에서 벽모양대로 Collider를 생성해 Material에 WallPhysicsMat를 넣습니다. 계단에서는 미끄러지지 않게 하기 위해 마찰력이 높은 GroundPhysicsMat를 넣어주세요.
간혹가다 벽에 너무 가까이에 있으면 렌더링되지 않아 해당 오브젝트를 뚫고 바깥이 보이게 됩니다. 그때는 Player에 있는 Main Camera의 Inspector에서 Clipping Planes -> Near값을 0.1 또는 0.01 정도로 줄입시다.
그러면 정상적으로 렌더링 될겁니다!!
다음 글에서는: