본문 바로가기
게임 프로그래밍/게임개발 중급

게임개발 중급(67) - Monster Killer(29)

by jyppro 2023. 7. 2.

Monster Killer(29)

저번시간에는 게임을 시작했을 때 가장 처음 등장하는 시작화면을 구성하는 것을 해보았습니다. 오늘은 시작화면의 버튼의 기능을 만들어주도록 하겠습니다.

 

게임시작 버튼

using UnityEngine;
using UnityEngine.SceneManagement;

public class GameStartButton : MonoBehaviour
{
    private void Start(){ GetComponent<UnityEngine.UI.Button>().onClick.AddListener(GameStart); }
    private void GameStart(){ SceneManager.LoadScene("GameScene"); }
}

이전에 게임 재시작버튼을 만들었을 때와 비슷한 방식을 사용하여 씬 전환을 해보도록 하겠습니다. 스크립트를 통해 Onclick 리스너에 GameStart 함수를 연결시켜 줍니다. GameStart 함수는 로드 씬을 사용하여 GameScene이라고 이름을 지정한 씬을 가져오게 됩니다.

 

빌드 설정

아마 이렇게 코드를 작성하고 버튼에 넣어준 뒤 바로 실행하면 오류가 발생할 것입니다. 그 이유는 빌드세팅에서 씬을 연결시켜 주어야 하기 때문입니다. 유니티 에디터 좌측상단에 위치한 File -> Build Settings에 들어가면 해당 창이 등장합니다.

빌드-세팅
빌드 세팅 창

이 곳에서는 그동안 만든 게임을 각 플랫폼에 맞춰서 빌드하는 작업을 위한 세팅을 하는 곳인데, 이곳에서 Scenes In Build 칸이 있습니다. 현재 저는 이미 씬을 등록한 상태입니다. 아마 여러분들은 저 곳이 비어있을텐데 만들어서 저장해놓은 씬들을 드래그 앤 드랍으로 Scenes In Build창에 넣어주시면 됩니다. 넣어주시면 옆에 숫자랑 체크박스가 있는데 숫자는 인덱스 번호라고 생각하시면 됩니다. 체크박스는 빌드할 때 사용할 씬인지 확인하는 용도로 사용됩니다.

 

이렇게 세팅을 마치셨다면 앞서 작성한 씬전환 코드가 제대로 작동할 것입니다. 한번 확인해 보겠습니다.

 

게임실행

게임시작
게임시작

제대로 테스트를 하려면 시작화면을 구성하여 만든 MainScene에서 시작하여야 합니다. 해당 씬에서 게임을 시작하면 이렇게 화면이 뜨는데 게임시작 버튼을 연결한 Play 버튼을 눌러 게임화면으로 넘어가 보겠습니다.

 

게임플레이
게임플레이

Play버튼을 클릭하여 GameScene으로 무사히 넘어온 모습을 확인할 수 있었습니다.

 

<NEXT>

오늘은 버튼을 사용한 다른 씬으로의 전환을 알아보았습니다. 다음에는 게임을 일시정지하는 기능을 만들어 보도록 하겠습니다. 감사합니다.