-
[개발일지] 벽돌깨기 레트로 (가제) - 002 맵 에디터Develop/Games 2020. 3. 27. 01:35반응형
개요
이번 벽돌깨기에는 스테이지를 클리어하는 타입의 게임이예요.
그러다보니 스테이지를 제작하여 저장해야 하죠.
스테이지를 저장하는 방법으로는 일일이 오브젝트를 직접 배치하여 프리팹으로 만들거나, 텍스트 파일 혹은 픽셀 이미지를 이용하여 파일로 저장하는 방법등 개발자에 따라 다양한 방법을 이용해요.
저는 이번에 유니티의 커스텀 에디터(Custom Editor)와 스크립터블 오브젝트(ScriptableObject)를 이용하여 맵 에디터를 제작하여 사용하기로 했어요.
※스크립터블 오브젝트(Scriptable Object) 란?
일반적으로 오브젝트는 어떠한 물체를 가르키고, 유니티에서는 대부분 게임오브젝트 형태를 가르켜요.
스크립터블 오브젝트는 저장하고자 하는 속성값을 물체화 하여, 다른 스크립트에서 프리팹을 끌어다 참조하듯이 스크립터블 오브젝트를 끌어다 참조할 수 있어요.
벽돌 관리툴
맵 에디터는 맵에 벽돌을 배치하기 위해 제작되었어요.
그렇기에 맵 에디터에서 벽돌 정보를 가져올 수 있어야 맵에 배치를 할 수 있죠.
벽돌 관리툴은 벽돌 정보를 스크립터블 오브젝트에 모두 모아 참조할 수 있도록 만들었어요.
필요할 때마다 스크립터블 오브젝트로 생성된 관리툴 파일에서 벽돌 정보를 가져와요.
새로운 벽돌이 제작되면 관리툴에 추가만 해두면, 맵 에디터나 게임에서 해당 벽돌의 이름을 이용하여 쉽게 참조 할 수 있도록 만들었어요.
위 이미지는 커스텀 에디터로 더 보기 쉽고 사용하기 편하도록 편집한 상태예요.
벽돌의 모양을 이미지로 확인할 수 있도록 벽돌마다 icon 텍스쳐를 포함하고 있어서, 맵 에디터에서도 가져다 쓸 수 있게 작업했어요.
맵 에디터
맵 에디터는 맵의 모양을 직관적으로 확인할 수 있도록 제작했어요.
벽돌의 체력이나, 벽돌 위치를 쉽게 확인 할 수 있죠.
맵 에디터 (좌), 게임에 적용된 화면(우) 맵 에디터의 좌측에서 어떤 벽돌을 배치할지 선택한 후 우측의 맵의 각 셀을 클릭하면, 그 자리에 선택한 벽돌이 배치되도록 제작하였어요.
게임을 실행해서 결과를 확인해보니 만족 스럽네요!
마치며
맵 에디터의 기능은 개발이 완료된 상태는 아니예요.
게임이 개발되는 동안 필요한 기능이 계속 추가될 예정이예요.
다음 작업은 게임에서 벽돌의 체력 표기와 공의 궤적을 작업할 것 같아요.
다음 작업이 마무리되면 다시 돌아옵니다! Bye~
반응형'Develop > Games' 카테고리의 다른 글
[개발일지] 벽돌깨기 레트로 (가제) - 005 조준선 & 벽돌 이동 (0) 2020.04.02 [개발일지] 벽돌깨기 레트로 (가제) - 004 이펙트(1) (0) 2020.04.01 [개발일지] 벽돌깨기 레트로 (가제) - 003 벽돌 체력, 외형 변화 (0) 2020.03.28 [개발일지] 벽돌깨기 레트로 (가제) - 001 개발 시작 (0) 2020.03.25