이전 포스트에서 디자인까지 적용하여 게임다운 모습이 나왔습니다.

 

[Unity] 2D 미로찾기 게임 만들기 #09 - 타일맵 축소 및 디자인 적용

저번엔 렌더링과 조명에 관련한 설정을 했습니다. [Unity] 2D 미로찾기 게임 만들기 #08 - 시야 제한 (URP, Light2D)저번 포스트에서는 씬 전환을 주로 다루었습니다. [Unity] 2D 미로찾기 게임 만들기 #07

hya68.tistory.com

 

이제 마지막으로 게임 빌드 및 완성을 해보겠습니다.

함정이나 버프 아이템은 추후에 추가해볼게요.

빌드하기 전에 타이머 시간 설정이나 플레이어 속도 조절 등 게임 밸런스는 맞춰줘야 합니다.

밸런스 다 맞추셨다고 생각하고 진행해보겠습니다.

 

게임 빌드(실행 파일로 만드는) 방법

  1. '파일 > 빌드설정' 에서 게임에 필요한 씬을 순서대로 추가 (체크 필수)
  2. 플랫폼 선택 및 설정
  3. 플레이어 설정(아이콘, 해상도 등 설정)
  4. 빌드 or 빌드하고 실행 (저장할 폴더 선택)

 

저는 시작 씬과 총 4개의 스테이지 씬으로 구성했습니다.

 

이제 '파일' > '빌드 설정'에 들어가서 게임에 사용될 씬 개수를 확인한 후 순서대로 추가합니다.

그 후 플랫폼 및 플랫폼 설정을 합니다.

저는 Windows를 기준으로 만들 예정이기 때문에 Windows로 설정했습니다.

 

다음으로 왼쪽 밑에 있는 '플레이어 설정'에 들어가서 아이콘, 해상도 등 설정해줍니다.

 

여기까지 다 하셨으면 이제 '빌드'나 '빌드하고 실행' 버튼을 누르고 저장할 폴더 선택 후 실행하면 됩니다.

빌드하는 데 시간이 걸리므로 잠시 대기하시면 됩니다.

빌드 완료 후 선택한 폴더를 확인하면 게임 파일이 생성된 것을 볼 수 있습니다.

빌드 후 생성된 게임 파일

 

이렇게 게임 하나가 완성되었습니다!

제가 만든 완성본은 용량이 커서 구글 드라이브로 공유해드릴게요.

5분도 안걸리는 1회성 2D 미로찾기 게임이니 심심하실 때 한 번씩 플레이 해보세요:)

 

게임 다운로드 : https://drive.google.com/file/d/13IkvG3J6KnkiOf5Fvvi3BiEADWtLkdPi/view?usp=sharing

 

저번엔 렌더링과 조명에 관련한 설정을 했습니다.

 

[Unity] 2D 미로찾기 게임 만들기 #08 - 시야 제한 (URP, Light2D)

저번 포스트에서는 씬 전환을 주로 다루었습니다. [Unity] 2D 미로찾기 게임 만들기 #07 - 시작 화면 연결(씬 전환) & 버튼 활성화저번 포스트에서 클리어 처리까지 완료하여 게임이 거의 완성되어

hya68.tistory.com

 

이번에는 여러 스테이지를 만들기 위해 타일맵 축소를 한 후 직접 만든 디자인을 적용시켜보겠습니다.


타일맵 축소

타일맵 축소를 위해서 저는 Grid 셀 크기를 줄이는 법을 선택했습니다.

그 이유는 간단한 방법이기도 하고 스프라이트 단위당 픽셀만 조절하면 되기 때문입니다.

Grid 셀 크기 1

셀 크기는 기본적으로 1로 설정되어 있습니다.

저는 다음 스테이지에서 더 넓은 맵을 만들기 위해 셀 크기를 1/2로 줄였습니다.

그랬더니 타일의 크기는 그대로여서 아래와 같이 겹쳐진 것을 볼 수 있습니다.

Grid 셀 크기 1/2

겹쳐진 타일의 해결 방법은 스프라이트 단위당 픽셀을 줄이는 것입니다.

기존 스프라이트를 유지하고 싶으면 스프라이트를 복사해서 줄이는 방법이 있습니다.

 

일단 겹쳐진 타일들은 타일 파레트 지우개를 이용해서 전부 지워줍니다.

하나씩 클릭해도 지워지고, 클릭한 상태에서 드래그하면 움직이는 경로대로 타일이 지워집니다.

타일 지우기

 

스프라이트 단위당 픽셀을 조정해보겠습니다.

그리드 1/2일 때 스프라이트 단위당 픽셀 140으로 맞추면 타일 하나를 꽉 채웁니다.

3번째 포스트(https://hya68.tistory.com/10)에서 단위당 픽셀 조절하는 법 및 맵 생성 방법이 나오니 참고해주세요.

이후 조절된 스프라이트로 경로를 만들고 플레이어 및 아이템 크기를 조정하면 아래와 같이 완성됩니다.

시야 제한 무 / 유


디자인 적용

이제 공용 소스가 아닌 직접 만든 디자인을 통해 게임을 설정해보겠습니다.

플레이어 / 게임 소스들

플레이어와 UI, 아이템, 맵을 직접 그려서 제작했고,

게임 소스들은 필수적인 것 이외에도 뭐가 필요할지 몰라 여러 개 만들어봤습니다.

 

위의 디자인들을 적용시킨 최종 게임 화면입니다.

 

이렇게 마무리 되었구요 마지막 포스트에서 빌드 설정 및 빌드 방법에 대해 작성해보겠습니다.

최종적으로 만들어진 게임은 마지막 포스트에 올리겠습니다:)

저번 포스트에서는 씬 전환을 주로 다루었습니다.

 

[Unity] 2D 미로찾기 게임 만들기 #07 - 시작 화면 연결(씬 전환) & 버튼 활성화

저번 포스트에서 클리어 처리까지 완료하여 게임이 거의 완성되어 갑니다. [Unity] 2D 미로찾기 게임 만들기 #06 - 클리어 처리저번 포스트까지 클리어 조건에 대한 설정을 전부 만들었습니다. [Uni

hya68.tistory.com

 

이번에는 플레이어 위주로 시야 제한을 설정해보겠습니다.

시야 제한 예시

 

사실 전 이 게임을 만들면서 이 부분이 제일 어려웠어요.

검색해도 잘 안나오는 부분이어서 구현하는데 어려움이 있었지만

그래도 이것저것 만지니까 구현하는 데 성공했습니다.

게임 구현을 먼저 해보고 렌더링이나 조명에 관한 것은 나중에 자세히 정리해볼게요.


 

구글링에 의하면 우선 UniversalRP(URP)라는 패키지를 설치해야 한다고 합니다.

UniversalRP(URP) 설치 방법

1. 프로젝트 생성 시 Universal이 들어간 템플릿을 선택한다.

2. 직접 설치한다.

- 경로 : windows(창) > 패키지 관리자 > Unity 레지스토리 설정 > UniversalRP 검색 후 설치

전 1번 방법으로 만들어서 이미 설치되어 있지만 그렇지 않으신 분들은 직접 설치한 후 다음으로 넘어가주세요.

 

생성하고나면 이렇게 에셋 폴더에 UniversalRenderPipelineGloberSetting이 자동으로 생기고

패키지도 확인해보시면 UniversalRP가 설치되어 있을 겁니다.


*****렌더 파이프라인 설정은 1번 방법으로 설치하신 분은 건너뛰어도 되는 부분입니다.*****

다음으로 URP 에셋과 렌더링을 생성합니다. (1번 방법으로 설치하신 분은 이미 Settings 폴더에 들어있습니다.)

경로 : 에셋 폴더 우클릭 > 생성 > 렌더링 > URP 에셋(2D 렌더러 포함)

그 다음 편집 > 프로젝트 설정 > 그래픽스 > 렌더 파이프라인 설정 을 하셔야 됩니다.

프로젝트를 1번으로 만들었으면 사진처럼 이미 URP 에셋이 들어가 있을겁니다.

2번으로 만드신 분들은 위에서 생성한 URP 에셋을 넣어주시고 적용되는 동안 발생하는 대기시간을 기다리시면 됩니다.


광원 적용

 

프로젝트 세팅까지 마쳤으면 프로젝트에 광원 오브젝트가 적용되는 것을 볼 수 있습니다.

광원에는 여러 종류가 있는데요, 일단 전체적으로 가려야되기 때문에 전역광원 2D를 생성합니다.

게임 오브젝트 > 광원 > 전역광원 2D

그러면 Light 2D 오브젝트가 생성될 것이고 컬러를 검은색으로 설정하면

아래처럼 UI 오브젝트를 제외한 화면이 까맣게 보이게 됩니다.

특정 오브젝트만 적용하는 방법은 아직 찾지 못해서 나중에 렌더링을 정리할 때 다뤄보도록 하겠습니다.

 

이제 플레이어 주변은 밝게 설정해줘야 합니다.

플레이어에 광원 종류 중 스폿광원2D를 추가해주면 아래와 같이 플레이어 위주로 조명이 생성됩니다.

외부 반지름과 내부 반지름을 통해 조명 범위를 지정할 수 있고,

감쇠 강도를 통해 빛번짐 정도를 설정할 수 있습니다.

 

스폿광원을 플레이어 하위에 생성했으므로 게임을 실행하면 아래와 같이 조명이 플레이어에 맞춰 움직입니다.

완성:)


참고자료

 

[유니티 기술소개] URP 2D 렌더 파이프라인- 프로젝트 세팅

URP 12.1 2D 렌더 파이프라인 Universal Render Pipeline에서 2D Render Pipeline Project Set...

blog.naver.com

 

저번 포스트에서 클리어 처리까지 완료하여 게임이 거의 완성되어 갑니다.

 

[Unity] 2D 미로찾기 게임 만들기 #06 - 클리어 처리

저번 포스트까지 클리어 조건에 대한 설정을 전부 만들었습니다. [Unity] 2D 미로찾기 게임 만들기 #05 - 클리어 조건(키 획득)저번 포스트에서 타임어택을 설정하였습니다. [Unity] 2D 미로찾기 게임

hya68.tistory.com

 

이번에는 씬 전환을 통한 시작 씬을 게임 씬과 연결하고 각종 버튼들을 활성화시키겠습니다.

 

저는 아래와 같이 게임 로직을 구성했습니다. 이에 따라 버튼을 만들어 보겠습니다.

게임 로직


먼저 UI를 통해 버튼을 만듭니다.

버튼 만들기 : GameObject > UI > 버튼-TextMeshPro

버튼 생성

시작 씬에서는 설명 버튼(왼쪽 위), 시작 버튼(중앙 아래), 닫기 버튼(오른쪽 위)로 구성되게 만들었습니다.

열고 닫을 수 있는 설명 UI는 중앙에 위치시켰으며, UI 안에 닫기 버튼도 추가했습니다.

또한, 게임 오버와 게임 클리어 시 나타나는 UI에는 RESET 버튼, HOME 버튼으로 구성되며, 닫기 버튼도 만들었습니다.

이후에 게임 스테이지를 추가하여 게임 클리어 UI에 NEXT 버튼도 추가할 예정입니다.

 

[버튼 구성]

- 설명 버튼(토글 형식) : 설명 UI창 표시/미표시

- 설명 UI창 닫기 버튼 : 설명 UI창 미표시

- 시작 버튼 : 게임 씬 불러오기(씬 전환)

- X(닫기) 버튼 : 게임 종료

- RESET 버튼 : 게임 다시 시작

- HOME 버튼 : 시작 씬 불러오기(씬 전환)

- (이후 추가될) NEXT 버튼 : 다음 게임 스테이지 씬 불러오기(씬 전환)

 

이제 버튼을 활성화해보겠습니다.

버튼 활성화 스크립트는 아래와 같습니다.

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.SceneManagement;

    public class ButtonSample : MonoBehaviour
    {

        [SerializeField]
        GameObject sp; // 설명 UI창

        // close 버튼을 누르면
        public void OnClickClose()
        {
            Application.Quit(); // 게임 종료
        }

        // setting 창 띄우기(토글)
        public void OnClickSetting()
        {
            if (sp.activeSelf == true) {
                sp.SetActive(false);
            } else {
                sp.SetActive(true);
            }
        }

        // setting 창 닫기
        public void OnClickSettingOut()
        {
            sp.SetActive(false);
        }

        // reset 버튼을 누르면
        public void OnClickReset()
        {
            // 게임 다시 시작
            SceneManager.LoadScene(SceneManager.GetActiveScene().name);
        }

        // home 버튼을 누르면
        public void OnClickHome()
        {
            // 시작 화면으로
            SceneManager.LoadScene("StartTest");
        }

        // start 버튼을 누르면
        public void OnClickStart()
        {
            // 게임 시작
            SceneManager.LoadScene("MyCatTest");
        }
    }

위의 스크립트를 모든 버튼에 적용시킵니다.

게임 오브젝트 Sp는 설명 UI 이므로 설명 버튼에서만 설정해두면 됩니다. (나머지는 빈 오브젝트로 두기)

설명 버튼 스크립트 적용 및 버튼 설정

 

 

 

여기까지 하시고 START(씬 전환) 버튼을 실행해보시면 오류가 하나 뜰겁니다.

Scene "씬 이름" couldn't be loaded because it has not been added to the build settings or the AssetBundle has not been loaded. To add a scene to the build settings use the menu File->Build Settings...

 

빌드 설정에 해당 씬이 포함되지 않았다는 말입니다. 빌드 설정에 씬을 추가해주시면 됩니다.

빌드 설정에 씬 추가하기 : 파일(File) > 빌드 설정( Build Settings) > 열린 씬 추가 or 씬 드래그

빌드 설정에 씬 추가하기

빌드 씬의 순서는 로직 순서대로 맞춰주는 게 좋습니다. 만들어지는 게임 첫 시작 화면이 0번째 씬이기 때문입니다.


여기까지 무사히 하셨다면 최종적으로 아래 영상과 같이 만들어집니다.

 

저번 포스트까지 클리어 조건에 대한 설정을 전부 만들었습니다.

 

[Unity] 2D 미로찾기 게임 만들기 #05 - 클리어 조건(키 획득)

저번 포스트에서 타임어택을 설정하였습니다. [Unity] 2D 미로찾기 게임 만들기 #04 - 타임어택 적용하기이전 포스터에서는 타일맵 스프라이트를 조정하여 오류를 잡았었습니다. [Unity] 2D 미로찾

hya68.tistory.com

 

이제 클리어 처리를 해보겠습니다.

먼저 골 지점을 표시해 줄 이미지에 Collider2D를 적용시킵니다.

그리고 클리어 화면을 만들어보겠습니다.

 

이제 클리어 처리 스크립트를 작성하겠습니다.

이전 포스트에서 말했듯이 클리어 조건은 2가지로 모든 열쇠 획득과 골 지점에 도착하는 것이었습니다.

이 두 조건을 모두 만족해야 클리어가 가능하도록 스크립트를 짜면 아래와 같습니다.

최종적으로 아래와 같이 만들어집니다.

키를 다 얻지 못하면 골 지점에 닿아도 클리어 할 수 없으며,

키를 전부 얻고 골 지점에 도착하면 클리어 화면이 띄워지게 됩니다.

+ Recent posts