-
TowerDefense 프로젝트 - 1 : start, end point / path 만들기Unity 2020. 7. 23. 16:37
타워디펜스 게임을 만들기 전 먼저, 타워 디펜스의 맵을 구성해야 한다.
다양한 방식이 있겠지만, 여기서는 타일 방식의 기본적은 맵을 구성하기로 하였다.
먼저 내가 사용하고 있는 유니티 버전은 19년도 2.17f 버젼이며, 비주얼 스튜디오 2017 community 버전으로 본 프로젝트를 사용하고있다.
이전 글에서도 언급했다 시피, 본 프로젝트는 Brackeys 유튜버 님의 영상을 따라가면서 제작하는 방식의 연습용 프로젝트이다.
https://www.youtube.com/watch?v=beuoNuK2tbk
완성본 위 완성본은 데스크탑 환경에서 미리 구현해 놓은 것이기에, 아래에서 다루는 경로구성과 다르나, 만드는 원리는 동일하며, 앞으로 제작하는 것에는 위의 그림의 구성도를 따라감을 미리 설명한다.
초기 화면 먼저 프로젝트를 생성시 3D를 선택하여 생성후, 화면을 보면 위와 같이 있을것이다.
나는 사용하다 보니 위와 같은 화면구성이 보기 좋아서 화면구성을 위와같이 하였다. (마우스로 드래그 하면 된다)
처음 시작은 아마 아무것도 없이 이런 상태일것이다.
먼저 대부분의 타워디펜스게임이 start point - end point로 이뤄져 있으며, enemy들이 움직이는 path(경로) 로 이뤄져있으며, 이번에는 이에 해당하는 start, end point, path(경로) 구성을 해볼것이다. 가장 기본이 되는 타워 디펜스 판을 만들어 볼것이다.
또한 타워 (유투브 영상에서는 turret이라고 함) 가 놓이는 공간을 node로 이름짓고, 해당 판들을 흰색, 경로 즉 enemy들이 지나가는 길을 검은색으로 하여 만들어 볼것이다.
Cube 생성 Hierarchy에 마우스 우클릭을 하면 위와 같이 각종 오브젝트들을 생성할수 있는데, 여기서 3D 오브젝트 Cube를 생성한다. 타워디펜스로 정사각형 판으로 만들것이기에, 해당 큐브, 앞으로는 node, 노드라고 명칭하겠다. 이 노드들을 여러개 생성하여, 타워를 놓는공간을 설정 할 것이다.
먼저 큐브를 생성하면 좌표 초기화를 위해 Transform 쪽에 마우스 우클릭 하면 위와 같이 나오는데, 여기서 Reset 버튼을 클릭하여, 좌표를 초기화 해준다. x,y,z (0,0,0) 으로 초기화가 된다.
이후 정사각형의 납작한 판을 구성하고자 x, z의 scale 값을 각각 4, 4 로 조정해준다.
이후 node 오브젝트를 Asset 항목에 드래그 시켜, Prefab시켜준다.
Prefab하는 이유는, 똑같은 걸 여러개 만들어야 하는데, 이를 일일이 만들어 주기에는 너무 시간이 많이 걸리기에, 한번 이렇게 만들어 놓은것을 재사용하고자 Prefab을 시킨다고 이해하면 되겠다.
이후 Node를 여러개 생성할것인데, (타워 및, 경로를 만들기 위함)
이를 관리하기 위해 Hierarchy에서 Empty Object를 생성해준다. (부모-자식 관계로 node 들을 관리하기위함)
이 Empty Object 역시 Reset 해줌으로 좌표 초기화 하는것을 잊지 말자.
이제 이렇게 생서한 node를 복사 하여 상하 좌우로 움직여서, 판을 만들것이다.
(일정하게 움직이기 위해 Ctrl 키를 누른채로 이동하면 일정한 크기만큼 움직여진다.)
이렇게 계속 복사하여 약 256개정도의 node가 생성되었으며, 위와 같이 정사각형 형태의 판이 완성된다.
지금까지 만든것을 MainScene으로 저장한다.
이제 생성한 노드에서 start, end 포인트를 위와 같이 만들고 (본인이 원하는 위치에 해도 된다.)
path(경로) 를 만들것이다. 경로는 자기가 생각하는 난이도에 따라 다양하게 만들수 있기에 마음대로 만들어도 된다.
(node 클릭후 삭제 해주면 된다)
본 게시글은 데스크탑에서 이미 완성 한것을 기록하는것을 깜빡하여, 노트북으로 새로 만드는 것이기에,
차후게 게시되는 글에서는 여기서 만든 경로와 경로가 다를수 있습니다. 다만, 경로 생성하는 법을 알리고자 이렇게 작성하는 것이며, 기능에 있어서는 문제가 없습니다.
예시로 위와 같이 판을 구성하였고, 이제 다시 Ground 라는 enemy들이 지나가는 바닥을 만들어 줄것이다.
다시 Hierarchy에서 cube를 생성해준다. (이름은 Ground로 수정)
그리고 Ground object에 색을 입혀주기 위해 Asset에 Material을 추가할것인데, 위와같이 마우스 우클릭으로 추가할수 있다. 해당 Material 을 생성하면, Albido (색상)을 검정에 가까운 회색으로 설정하여, 미리 만들어준 Ground 오브젝트에 드래그하여, 적용시켜주면 된다.
Albido 값을 적용하면 이후에, metalic, smooth 값을 본인 취향에 따라 지정하면 된다.
사진과 같이 Ground에 Material이 잘 적용됨을 알수 있다.
이 Ground는 path를 만들어주기 위함이며, Edit - snap setting을 이용하여 scale을 조정해줄것이다.
Ground scale값 (크기조절) 을 조절할때 해당 부분으로 체크 한후 원하는 부위를 늘려주고 줄여주면 된다.
snap setting을 하는 이유에 대해 잘 몰랐는데, 오브젝트의 크기, 여기선 큐브의 크기를 조절할때, 지정한 값 만큼 각 축에서 그 만큼씩 조절이 되기에, 이렇게 조정하는것임을 알게 되었다.
이제 해당 경로를 다 채우기 위해, 처음 만들어준 Ground 오브젝트를 복사한 후, Rotation 값 90을 줘서 회전 시킨후, 사이즈를 조정하여 주위 블록과 어느정도 간격을 맞춰 가면서, 채워 넣으면 경로는 다 생성이 된다.
다 반복 작업이기에, 바로 완성본으로 보면 다음과 같다.
내가 작성한 맵은 약간 삐뚤한것도 있지만, 가능하면 미세한 조절을 통해 이어지는 부분은 잘 조절해주는것이 좋다.
이후 Ground 오브젝트들을 따로 관리하고자 Empty Object를 하나 생성하여 Environment로 이름을 변경해준다.
(이전 오브젝트들과 마찬가지로 오브젝트 생성후 reset 후 위와같이 다뤄야 함)
이제 Start , End point에 해당하는 오브젝트들을 생성할것이다.
위와 같이 먼저 START 오브젝트 생성후, start 포인트를 알리고자 Scale 값을 4,4,4 로 지정해준다.
위와 같이 Start 포인트로 지정한 위치에 Start 오브젝트를 위치시킨이후,
이제 Material을 추가하여, 색상을 추가해준다.
이전에 Ground 에 material을 적용한것과 마찬가지로, 이것도 드래그 하여 색상 및 효과를 START cube에 적용시켜주면 된다.
이후 동일한 과정으로, END 오브젝트를 추가한 후, Material을 적용후, 해당 위치에 위치시켜주면된다.
이후에 생성될 enemy 오브젝트들과의 충돌을 제거하기 위해 box collider 컴포넌트는 제거 시켜준다.
(마우스 우클릭으로 remove component 하면 된다)
위에서 box collider 없앤것과 마찬가지로, 모든 Ground 오브젝트에서도 없애주면된다.
이렇게 타워디펜스의 맵을 구성하였다 (Start, End point, Path(길) 만들기)
'Unity' 카테고리의 다른 글
UnityChan-SD 가지고 놀기 (0) 2023.04.17 게임개발 : 스텔스 게임 1 (0) 2023.04.04 TowerDefense 프로젝트 - 2 : Enemy 생성 (AI) (0) 2020.07.23 TowerDefense 프로젝트 - 0 (0) 2020.07.23