게임 기획/내일배움캠프(개발)

[TIL] Unity 입문 Team Project 3

선조미 2025. 5. 13. 19:48
게임매니저
개인 프로젝트에서 씬 전환을 통해 게임을 진행했던 것이 기억나 게임의 전체 흐름을 씬 전환으로 이동해주기로 했다.

GameManager.cs를 통해 Header를 만들고, 씬이 파괴되지 않도록 DontDestroyOnLoad를 선언해줬다.
[Header("StartScene UI")]
public GameObject startCanvas;
public GameObject stageCanvas;
public GameObject[] loadingCanvas;

[Header("GameScene UI")]
public GameObject playCanvas;
public GameObject gameOverCanvas;

private void Awake()
{
    if (Instance == null)
    {
        Instance = this;
        DontDestroyOnLoad(this.gameObject); // 파괴되지 않게
    }
    else
    {
        Destroy(gameObject);
    }
}​
이후엔 OnClick...() 클래스를 통해 각 씬을 불러와주는 로직을 만들었다. 

게임시작 버튼을 누르면 로딩 화면이 출력 된 뒤 게임 화면이 나오도록 하고 싶었다. 
그치만 ,, ㅋㅋ 실제 로딩 화면을 연출하기엔 볼륨이 작아 딜레이가 없기도 했고 방법도 정확히 몰라 일단 가짜 로딩화면을 잠시 띄운 뒤 게임 화면으로 넘어갈 수 있도록 했다 ㅎ ㅎ,,
private IEnumerator LoadStageAfterDelay(int stageIndex)
{
    yield return new WaitForSeconds(2f);

    string sceneName = "GameScene_" + stageIndex; // GameScene_0, GameScene_1, GameScene_2
    SceneManager.LoadScene(sceneName);
}​

 

이 로직을 통해 게임 시작 버튼을 누르면 로딩 캔버스로 화면이 전환 된 뒤 2초간의 딜레이를 줘 로딩이 진행중인 듯한 연출이 보이도록 했다. 그러고 선택한 스테이지에 맞게 씬 전환이 되는 것 까지 구현해줬다.

'게임 기획 > 내일배움캠프(개발)' 카테고리의 다른 글

[TIL] Unity 입문 Team Project 4  (0) 2025.05.14
[TIL] Unity 입문 Team Project 2  (0) 2025.05.12
[TIL] Unity 입문 Team Project 1  (1) 2025.05.08
[TIL] Unity 입문 3  (1) 2025.05.01
[TIL] Unity 입문 1  (2) 2025.04.29