ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2D 슈팅게임 01. 게임 디자인 및 준비단계
    유니티 프로젝트/2D.SpaceShooter

    먼저 작업에 앞서 01 챕터에서는 게임에 필요한 단순 준비 단계를 보여주기에

    동작 구현을 보실 분들은 2D 슈팅게임 02.부터 봐주신다면

    방문하여 주신 귀하의 바쁜 시간에 조금이나마 보탬이 될 것 같습니다.

     

    개인 프로젝트인 작은 2D 슈팅게임을 만들어 본 적이 있습니다.

     

    이번 기회에 제 것으로 만들기 위해서 개발 과정을 하나씩 캡처를 하며

     

    빠르진 않더라도 과정을 보여드리려고 합니다.

     

     

    배경과 플레이어에 따라 제목이 달라질 것 같아서 게임의 제목은 아직 정하지 못했습니다.

     

    우선 제가 만들고자 하는 게임의 간단한 소개는 이러합니다.


    1.Player는 좌 우 이동이 가능하며 점프가 가능합니다.

     

    2.Player가 공격 버튼을 클릭하여 몬스터를 맞출 시, 몬스터는 공격 물, 코인, 버프 아이템을 랜덤으로 낙하합니다.

     

    3.Player가 Monster의 공격 낙하물을 맞으면 게임은 종료되며 Restart가 가능합니다.

     

    4. 반대로 코인 을 먹게 되면 점수가 오르며 버프 아이템을 먹으면 공격 속도가 빨라집니다.

     

    5.Player의 점프는 제작했을 시 필요성을 크게 느끼지 못하여서,

    양 옆의 트릭을 두어 회피를 점프로 하게끔 만들려고 합니다.


    초기 콘셉트는 총 이렇게 5가지로 크게 분류해놓았습니다.

     

    게임은 조이스틱을 추가시켜 모바일 환경으로 만들겠습니다.

     

    Build Settings을 눌러 Android로 Switch Platform을 눌러서 

    플랫폼을 안드로이드 환경으로 만들어 주었습니다.

     

    이후 화면의 해상도는 1920 x 1080으로 해 주었는데 스마트폰 해상도에 호기심이 생겨서

    조사를 하려고 검색을 해보니, 기종에 따라 해상도가 다양하다는 것을 알 수 있었습니다.

     

    주로 사용하는 16:9 의 해상도를 기준으로 잡아,

    캔버스의 UI Scale Mode에서 기기에 따라 해상도를 바꿔 주는 법을 알게 되었고

    canvas의 컴포넌트 항목에 해당하는 Ui Scal Mode 부분의 3가지를 알고 넘어갈 수 있었습니다.

     

    Constant Pixel Size : UI 요소가 화면에 상관없이 동일한 픽셀 크기를 유지한다.

    Scale With Screen Size : 화면이 커질수록 UI 요소도 커진다.

    Constant Physical Size : 화면 크기와 상관없이 UI 요소가 동일한 크기로 유지된다

     

    각 종 사이트 서치 후 무료 다운로드

     

    각 몬스터와 조이스틱 player는 Unit Asset 에서 무료로 다운로드하였습니다.

     

    우선 게임의 타이틀을 만들기 위해서 Canvas를 만들어 TextMeshPro를 만들어 주었습니다.

    canvas의 UI Scale Mode는 Scale With Screen Size로 1080x1920으로 해 주었습니다.

     

    Text와 TextMeshPro 두 가지의 텍스트 방법이 있는데 Text는 기존 UGUI때 사용하던 것이고

    TextMeshPro는 원래 에셋 스토어 상품이었지만 유니 티사에서 제공한다고 합니다.

     

    여러 사이트를 서치 하면서 찾은 결과

    장점

    1. 기존 Text보다 빠르다.

    2. 최적화에 유리하다.

    3. 용량은 더 크지만 사용하는 메모리는 적다.

    4. 커스텀이 훨씬 다양하고 퀄리티가 높다.

     

    단점

    Text에 비해 사용법이 복잡하다..?

     

    우선 메모리는 더 적으며 Text보다 빠르며 최적화에 유리하다로 머릿속에서 간략하게 정해 졌는데, 커스텀 부분을 좀 더 찾아보고 연출에 있어서 퀄리티를 더 높여야겠습니다.

     

    또한 아직은 단점이 Text에 비해 사용법이 복잡하다? 정도로 밖에 못 찾았는데..

    그럼 당연히 TextMeshPro를 써야 하는 것이 아닌가? 하는 생각이 듭니다.

     

    게임 타이틀을 상단에 위치시켜 주고

     

    또한 타이틀 화면이기에 Start 버튼과 Quit 버튼을 추가시켜 Start 버튼이 눌리면 OnClick() 이벤트를 통해

    Start 버튼과 Quit 버튼이 SetActive = false로 비활성화되고

    게임 화면에 필요한 UI가 활성화 되게 해 주었습니다.

    Canvas에 추가된 스크립트입니다. titleMenu로 타이틀 화면에 사라질 UI 항목들을

    빈 게임 오브젝트에 담아 주었고, 로딩 화면에 활성화 될 UI항목들은 ui변수인 빈 게임 오브젝트에 넣어 주었습니다.

    Start버튼을 클릭하면 실행할 OnClick 이벤트 함수의 설정 부분입니다.

     

    게임에 필요한 조이스틱과 Jump 버튼, Attack버튼을 추가시켜

    현재 생각나는 필요 UI 부분을 마무리했습니다.

     

     

    역시 사람에게 있어서 시각적인 효과는 실로 대단한 것 같습니다.

     

    게임을 만들 준비단계가 완성된 것 같으니, 이제 동작 구현 위주로 스크립트 설명을 이어가겠습니다.

    댓글

김효겸 / Tel. 010-7735-0580 / E-mail. dollzzang2@hanmail.net