티스토리 뷰

반응형

Gamelog 08. 미니 게임 완성했다.

드디어 게임이라고 할 수 있는 것을 완성했다. 한달정도 되었는데, 별거는 없지만 뿌듯하다.
조금씩 게임 개발에 더 가까워지는 느낌이랄까. 나중에 게임 내장된 웹페이지 같은 것도 만들어서 배포해보고 싶다.

 

Gamelog 08. 미니 게임 완성했다.

게임은 여러 개의 Scene으로 이루어져 있다. (EX_ 타이틀, 게임 오버 등)

Scene 전환

1. 현재의 Scene을 저장한다.

Unity Scene

씬을 저장한다. Save를 누르면 저장되며, 새로운 이름으로 저장할 경우 Save As...를 사용하여 저장한다.
처음에 생성되는 SampleSceneMainScene으로 변경하여 저장했다.

Unity Scene

Project창의 Scenes에서 저장한 mainScene을 확인할 수 있다.
게임 오브젝트와 배치 등의 내용이 저장된다.

 

2. 새로운 Scene을 만들고, 게임 오브젝트를 배치한다.

Unity Scene

New Scene으로 새로운 Scene을 만들어준다.
2D 게임을 공부하고 있으므로, 2D를 선택하여 Scene을 생성한다.

Unity Scene

모든 게임 오브젝트가 초기화 되고, 새로 게임 오브젝트를 배치해야 한다.
저장하지 않은 상태이므로 Untitled의 Scene이름을 Hierachy에서 확인할 수 있으며, 상태표시줄에도 Untitled로 나타남을 확인할 수 있다.

 

3. GameOver Scene 만들기

Unity gameover scene

Untitled상태에서 Ctrl+S를 눌러 Scene을 저장할 수 있다.
gameoverScene을 저장해봤다.

Unity gameover scene

gameover Scene은 게임오버 오브젝트만 먼저 배치했다.
프로젝트 뷰에서 gameoverScene이 추가 저장되어 있음을 알 수 있다.

Scene의 더블클릭으로 Scene을 전환할 수 있다.

 

4. Build Setting 추가

Unity Build Settings

Build Settings에서 사용할 Scene을 설정할 수 있다.

Unity Build Settings

사용하지 않은 Scene은 오른쪽 클릭하여 Remove Selection으로 삭제해야 한다.
게임에 어플로 보낼 때는 Scenes In Build의 위부터 차례대로 실행된다.

Scene을 추가하는 방법은, Add Open Scenes를 클릭하여도 되지만, Project 뷰에 있는 Scene을 드래그하여 추가할 수도 있다. (이게 훨씬 간편!)

 

5. Scene 전환 스크립트

using UnityEngine.SceneManagement;        // 씬 전환에 필요

SceneManager.LoadScene(씬이름);

버튼을 누르면 씬이 전환하는 구조

public string sceneName;

void OnMouseDown() {
    SceneManager.LoadScene(sceneName);
}

Unity Scene

Start 버튼을 누르면 mainScene으로 전환하게 한다.
이때, Box Collider 2D 컴포넌트도 추가가 필요하며, 전환할 Scene Name에 mainScene을 넣어 세팅한다.

Unity Scene

Build Settings에도 새로 추가한 startScene을 넣어준다.

Unity Scene

그러고 게임을 시작해보면, Start버튼을 누르면 Scene이 전환되는 것을 볼 수 있다.

 

충돌하면 씬이 전환하는 구조

public string targetObjectName;
public string sceneName;

void OnCollisionEnter2D(Collision2D collision) {
    if (collision.gameObject.name == targetObjectName) {
        SceneManager.LoadScene(sceneName);
    }
}

Unity Scene

유령에게 Box Collider 2D를 설정해준다.

Unity Scene

캐릭터에게 어떤 오브젝트와 부딪힐 때 어떤 씬으로 전환할 것인지 설정해준다.
부딪혀야 하므로, Box Collider 2D와 Rigidbody 2D를 추가해준다.
부딪히면, gameoverScene으로 전환하기로 해주고 실행해본다.

Unity Scene

드디어 게임같은 구조 완성!
유령에 RigidBody 2D 추가하고, Chase 스크립트도 추가해서 쫓아가도록 해서 조금 더 게임같이 만들어줬다.

 

반응형
댓글