유니티 기초 강좌: 엔딩 화면 제작 – 승리

서론

안녕하세요! 이번 강좌에서는 유니티에서 게임의 엔딩 화면을 제작하는 방법에 대해 알아보겠습니다. 특히 승리 판정을 받을 때 보여줄 엔딩 화면을 중심으로 다룰 예정입니다. 게임 개발에 있어 엔딩 화면은 플레이어에게 중요한 피드백을 제공하며, 게임의 전체적인 경험을 결정짓는 데 큰 역할을 합니다. 이 글에서는 엔딩 화면의 구성 요소, UI 디자인, 스크립트 작성 방법 등을 자세히 설명하겠습니다.

1. 엔딩 화면 이해하기

엔딩 화면은 게임의 마지막 단계에서 플레이어에게 제공되는 화면입니다. 승리 조건이 만족되었을 때 나타나며, 대개 다음과 같은 요소로 구성됩니다:

  • 승리 메시지
  • 점수, 등급 등 통계 정보
  • 재시작 버튼
  • 메인 메뉴로 돌아가는 버튼
  • 배경 이미지 또는 애니메이션

2. 유니티 프로젝트 설정

먼저 유니티 프로젝트를 열고 엔딩 화면을 만들기 위한 새로운 씬(Scene)을 생성하겠습니다. 다음의 단계를 따르면 됩니다:

  1. 유니티 에디터에서 File 메뉴를 클릭한 후 New Scene을 선택하세요.
  2. 씬 이름을 EndingScreen으로 지정하고 저장합니다.
  3. Hierarchy 패널에서 오른쪽 클릭하여 UI -> Canvas를 선택해 캔버스를 생성합니다.
  4. 캔버스 아래에 다양한 UI 요소를 추가합니다.

3. UI 구성하기

이제 엔딩 화면에 필요한 UI 요소들을 구성합니다. 엔딩 화면에 필요한 기본 요소들은 다음과 같습니다:

3.1. 승리 메시지 추가하기

Canvas 아래에 텍스트를 추가하여 승리 메시지를 표시합니다. 텍스트를 추가하려면:

  1. Hierarchy에서 Canvas를 우클릭하고 UI -> Text를 선택합니다.
  2. Text 객체의 속성을 수정하여 승리 메시지를 작성합니다. 예를 들면 “축하합니다! 당신은 승리했습니다!”라는 메시지를 사용할 수 있습니다.

3.2. 점수 및 통계 표시하기

게임에서 얻은 점수와 통계를 보여주기 위해 또 다른 Text 요소를 추가합니다.

  1. Hierarchy에서 Canvas를 우클릭하고 UI -> Text를 선택합니다.
  2. Text 객체의 속성을 수정하여 점수 정보를 동적으로 업데이트할 수 있도록 스크립트를 연결합니다.

3.3. 버튼 추가하기

플레이어가 재시작하거나 메인 메뉴로 돌아갈 수 있는 버튼을 추가합니다. 버튼 추가 방법은 다음과 같습니다:

  1. Hierarchy에서 Canvas를 우클릭하고 UI -> Button을 선택합니다.
  2. Button 객체의 텍스트를 수정하여 “재시작” 또는 “메인 메뉴”와 같은 문구를 입력합니다.
  3. Inspector 창에서 버튼의 크기와 위치를 조정하여 보기 좋아 보이도록 설정합니다.

4. 스크립트 추가하기

이제 엔딩 화면의 UI 요소들이 준비되었으니, 승리 조건이 발생했을 때 이 화면이 표시되도록 스크립트를 작성하겠습니다. 다음과 같은 접근 방식을 사용할 수 있습니다:

4.1. EndingScreenManager 스크립트 생성하기

유니티 에디터에서 아래의 방식을 따라 스크립트를 생성합니다:

  1. 프로젝트 뷰에서 Scripts 폴더를 생성합니다.
  2. Scripts 폴더에서 우클릭하고 Create -> C# Script를 선택하여 EndingScreenManager라는 이름의 스크립트를 만듭니다.
  3. 스크립트를 더블 클릭하여 코드 편집기로 엽니다.

4.2. 스크립트 코드 작성하기

아래는 EndingScreenManager 스크립트의 기본 코드 예시입니다:


using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

public class EndingScreenManager : MonoBehaviour
{
    public GameObject endingScreen;
    public Text scoreText;

    void Start()
    {
        endingScreen.SetActive(false);
    }

    public void ShowEndingScreen(int score)
    {
        endingScreen.SetActive(true);
        scoreText.text = "당신의 점수: " + score.ToString();
    }

    public void RestartGame()
    {
        SceneManager.LoadScene(SceneManager.GetActiveScene().name);
    }

    public void GoToMainMenu()
    {
        SceneManager.LoadScene("MainMenu");  // MainMenu는 실제로 존재하는 씬 이름으로 변경해야 합니다.
    }
}
    

4.3. UI 요소와 스크립트 연결하기

스크립트가 준비되었으니, UI 요소와 스크립트를 연결하는 작업을 진행하겠습니다:

  1. Hierarchy 패널에서 Canvas를 클릭한 후, EndingScreenManager 스크립트를 추가합니다.
  2. EndingScreenManager 컴포넌트의 Ending Screen 필드에 엔딩 화면의 GameObject를 드래그하여 연결합니다.
  3. Score Text 필드에는 점수를 표시할 Text 객체를 드래그하여 연결합니다.

5. 게임 종료 시 엔딩 화면 표시하기

게임이 종료될 때 ShowEndingScreen 메서드를 호출하여 엔딩 화면을 표시하도록 설정합니다. 승리 조건이 확인되는 위치에서 다음과 같은 코드를 추가하여 엔딩 화면을 보여줄 수 있습니다:


if (playerHasWon)
{
    endingScreenManager.ShowEndingScreen(playerScore);
}
    

6. 엔딩 화면 꾸미기

엔딩 화면은 디자인적으로도 눈길을 끌어야 합니다. 다음은 시각적으로 매력적인 엔딩 화면을 만들기 위한 몇 가지 팁입니다:

  • 배경 이미지와 어울리는 색상 조합을 사용하세요.
  • 애니메이션 효과를 추가하여 엔딩에 대한 흥미를 유도하세요.
  • 텍스트의 폰트 스타일을 조정하여 가독성을 높이세요.

결론

이 강좌에서는 유니티에서 엔딩 화면을 만드는 방법을 안내했습니다. 승리 조건이 만족되었을 때 적절한 시점에 엔딩 화면을 표시하고, 플레이어에게 축하 메시지와 통계 정보를 제공함으로써 더욱 만족스러운 게임 경험을 제공할 수 있습니다. 이제 여러분의 게임에 멋진 엔딩 화면을 추가하여 플레이어에게 잊지 못할 순간을 선사해보세요!

부록

추가적인 정보나 질문이 있으시면 댓글로 남겨주세요. 더 많은 유니티 관련 강좌를 원하신다면 블로그를 구독해 주세요!