반응형

1. 시험환경

    · 윈도우

    · 유니티(Unity) 6.2

 

2. 목적

    · 멀티(multi) 화면(Scene) 구성하는 방법 및 버튼 클릭 시 Scene 전환 방법을 알아보자.

 

3. 적용

    ① 신규 프로젝트를 생성한다.

        - Template: Universal 3D

        - Project name: chap10_sceneChange

        - Location: C:\workspace-unity

 

    ② 프로젝트 초기화 시 자동으로 생성된 SampleScene을 삭제한다.

        - 경로: Assets/Scenes

        - 파일명: SampleScene.unity

 

    ③ "Create" → "Scene" "Scene"을 생성하여 시작, 게임, 종료 Scene을 각각 만든다

        - 경로: Assets/Scenes

        - 파일명: StartScene.unity , GameScene.unity , FinishScene.unity

 

    ④ "StartScene" → "Hierarchy 창" → "마우스 우클릭 팝업 메뉴" → "UI" → "Text - TextMeshPro"

        - Object 이름: SceneText

        - Text Input: "Start Scene"

 

    ⑤ "StartScene" → "Hierarchy 창" → "마우스 우클릭 팝업 메뉴" → "UI" → "Button - TextMeshPro"

        - Object 이름: Button

        - Object (PosX, PosY): (200, -100)







 

    ⑥ "GameScene" → "Hierarchy 창" → "마우스 우클릭 팝업 메뉴" → "UI" → "Text - TextMeshPro"

        - Object 이름: SceneText

        - Text Input: "Game Scene"



 

 

    ⑦ "GameScene" → "Hierarchy 창" → "마우스 우클릭 팝업 메뉴" → "UI" → "Button - TextMeshPro"

        - Object 이름: Button

        - Object (PosX, PosY): (200, -100)





 

    ⑧ "FinishScene" → "Hierarchy 창" → "마우스 우클릭 팝업 메뉴" → "UI" → "Text - TextMeshPro"

        - Object 이름: SceneText

        - Text Input: "Finish Scene"




 

    ⑨ "FinishScene" → "Hierarchy 창" → "마우스 우클릭 팝업 메뉴" → "UI" → "Button - TextMeshPro"

        - Object 이름: Button

        - Object (PosX, PosY): (200, -100)



 

    ⑩ "File"메뉴 → "Build Profiles"팝업창  → "Scene List"탭에서 구성한 모든 Scene을 추가한다.

 

    ⑪ 버튼 클릭시 화면 전환을 위한 Script 파일을 작성한다.

        - 경로: Assets/Scripts

        - 파일명: SceneLoader.cs

  using UnityEngine;
  using UnityEngine.SceneManagement;

  public class SceneLoader : MonoBehaviour
  {
      // StartScene에서 호출
      public void LoadGameScene() {
          SceneManager.LoadScene("GameScene");
      }

      // GameScene에서 호출
      public void LoadFinishScene() {
          SceneManager.LoadScene("FinishScene");
      }

      // FinishScehe에서 호출
      public void LoadStartScene() {
          SceneManager.LoadScene("StartScene");
      }
  }

 

    ⑫ 각 Scene 마다 빈 객체를 생성해서 CS 파일을 임포트한다.

        - Object 이름: SceneLoader (at StartScene / GameScene / Finish Scene 모든 씬에서 생성)



 

    ⑬ StartScene의 Button 객체에서 OnClick() 이벤트 시, GameScene이 나타나도록 설정한다.

        - Runtime Only: SceneLoader객체 (Drag&Drop하여 임포트)

        - function: LoadGameScene()

 

    ⑭ GameScene의 Button 객체에서 OnClick() 이벤트 시, FinishScene이 나타나도록 설정한다.

        - Runtime Only: SceneLoader객체 (Drag&Drop하여 임포트)

        - function: LoadFinishScene()

 

    ⑮ FinishScene의 Button 객체에서 OnClick() 이벤트 시, StartScene이 나타나도록 설정한다.

        - Runtime Only: SceneLoader객체 (Drag&Drop하여 임포트)

        - function: LoadStartScene()

4. 결과

    · Play 버튼으로 실행하며 화면에서 Button을 클릭하면 화면이 전환되는 것을 확인할 수 있다.

 

반응형

+ Recent posts