본문 바로가기
IT Tip/유니티 강좌

[유니티강좌] 씬(Scene) 변경, 불러오기 #2 버튼클릭

by 연꽃연못 2020. 11. 26.
반응형

저번에 씬을 변경하거나 불러오는 방법을 알아봤는데 이번에는 버튼(UI)을 만들어서 그 버튼으로 제어하는 방법을 알아볼거에요. 게임을 제작할때 어떻게 설계하냐에 따라서 클릭해서 장면이동하거나, 버튼을 이용하거나 여러가지 방법이 있을수 여러가지를 경험해 보는것도 도움이 많이 될거에요. 

 

UI 버튼을 이용하여 장면(씬Scene)이동 하기

 

먼저 저번시간에 썼던 화면을 그대로 이용할거에요. 저번 강좌를 안보셨으면,,,

 

Scene을 두개를 만들어 주세요. MainScene, SubScene으로 전 구분을 해줬어요. 

MainScene과 SubScene을 단순히 눈으로 구분해주기 위해서 메인씬에는 큐브를 서브씬에는 원을 만들어 주고

서브씬에는 UI 버튼을 추가해 줬어요. 

 

저번강좌를 참고하고 싶으면 아래 링크를 클릭해서 한번 훅~ 보시면 되요. 

 

2020/11/24 - [유니티강좌] 씬(Scene) 변경, 불러오기 #1

 

이제 시작할께요. ^^

 

먼저 스크립트를 작성을 해주세요. 

스크립트 이름은 ChangeSceneToSub.cs라고 해줬어요. 이건 원하시는데로 하시고 나중에 찾기만 잘 찾으면 되요. 

 

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

public class ChangeSceneToSub : MonoBehaviour
{
    public void OnRetry()
    {
        SceneManager.LoadScene("MainScene");
    }
}

 

위에서부터 필요한 부분을 보면 UI 시스템을 이용할때 필요한 라이브러리에요. 이거 없으면 안되니 ^^ 꼭 해주세요. 

 

using UnityEngine.UI;

 

또 한가지 씬 처리를 하기 위한 라이브러리에요. ^^ 없으면 안되요. 

 

using UnityEngine.SceneManagement;

 

OnRetry()함수를 선언했어요.  씬을 불러들이는 두가지 방법이 있어요. 하나는 지정한 씬을 부르는거 하나는 자기자신을 부르는거에요.  OnRetry함수가 실행되면 Scene을 로드 할수 있도록 하고 있어요. 

 

    // OnRetry 함수가 실행되면 Scene을 읽어들임
    public void OnRetry()
    {
        // MainScene을 불러들임
        SceneManager.LoadScene("MainScene");

        // 현재의 Scene을 불러들임
        SceneManager.LoadScene(SceneManager.GetActiveScene().name);
    }

 

SceneManager.LoadScene("MainScene");

지정한씬(MainScene)을 로드

SceneManager.LoadScene(SceneManager.GetActiveScene().name);

 현재 Scene을 로드

 

스크립트를 저장하고 나오셔서 버튼을 눌렀을때의 이벤트를 설정할거에요. 

버튼을 선택하신후 Inspector에서 OnClick() → + 버튼을 클릭해서 추가를 해주세요. 

 

 

추가를 하면 아래와 같은 화면이 나오는데 None이라고 보이는 부분에는 Canvas를 드래그 해서 선택해주면 오른쪽의 No Function 부분에 이번에 작성한 스크립트의 OnRetry()함수를 지정해 줄거에요. 

 

 

캔버스를 끌어다 드래그온 시키면 No Function부분이 선택할수 있도록 목록이 생겨요. 

이번에 작성한 ChangeSceneToSub 을 선택해서 OnRetry를 선택해주세요. 

 

 

이게 끝이에요. ^^ 간단하죠? ㅋㅋ 간단하지만 자주 사용되는거 같아요. 

아래는 실행화면이에요. 버튼을 클릭하면 큐브가 있는 메인씬에 가고 메인씬에서는 서브씬으로 가라고 해놨으니 다시 클릭하면 서브씬으로 씬변경될거에요. 

 

 

반응형

댓글