From 566b39d6a49e9ee3ab59b040b40ee9cd2351602d Mon Sep 17 00:00:00 2001 From: "aube.lee" Date: Sun, 16 Feb 2025 13:32:28 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=8A=A4=ED=85=8C=EC=9D=B4=EC=A7=80=20?= =?UTF-8?q?=EC=94=AC=20=EC=A7=84=EC=9E=85=20=EC=8B=9C=20=EB=A1=9C=EC=A7=81?= =?UTF-8?q?=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Gameton/Scripts/Scenes/StageScene.cs | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/Gameton-06/Assets/Gameton/Scripts/Scenes/StageScene.cs b/Gameton-06/Assets/Gameton/Scripts/Scenes/StageScene.cs index 1e406e7b..10311e7f 100644 --- a/Gameton-06/Assets/Gameton/Scripts/Scenes/StageScene.cs +++ b/Gameton-06/Assets/Gameton/Scripts/Scenes/StageScene.cs @@ -11,11 +11,32 @@ namespace TON public override IEnumerator OnStart() { - // Ingame 씬을 비동기로 로드한다. - AsyncOperation asyncLoad = SceneManager.LoadSceneAsync("Ingame", LoadSceneMode.Single); + string stageId = PlayerPrefs.GetString("StageId", null); + Assert.IsNotNull(stageId, "StageScene:: 스테이지 진입 실패!"); + + // 선택한 스테이지에 맞는 씬을 로드한다 + AsyncOperation asyncLoad = null; + switch (stageId) + { + case "STG001": + asyncLoad = SceneManager.LoadSceneAsync("Stage 1", LoadSceneMode.Single); + break; + case "STG002": + asyncLoad = SceneManager.LoadSceneAsync("Stage 2", LoadSceneMode.Single); + break; + case "STG003": + asyncLoad = SceneManager.LoadSceneAsync("Stage 3", LoadSceneMode.Single); + break; + case "STG004": + asyncLoad = SceneManager.LoadSceneAsync("Stage 4", LoadSceneMode.Single); + break; + default: + Assert.IsTrue(false, "StageScene:: 스테이지 진입 실패!"); + break; + } // 로드가 완료될 때 까지 yield return null 을 하면서 기다린다 - while (!asyncLoad.isDone) + while (asyncLoad != null && !asyncLoad.isDone) { yield return null; } @@ -27,9 +48,6 @@ namespace TON // 선택된 캐릭터에 맞는 오브젝트를 생성하거나 적용하는 코드 작성 PlayerSpawner.SpawnPlayerCharacter(); - // 진입한 스테이지 아이디를 불러온다 - string stageId = PlayerPrefs.GetString("StageId", null); - Assert.IsNotNull(stageId, "StageScene:: 스테이지 진입 실패!"); StageManager.Singleton.StartStage(stageId); } public override IEnumerator OnEnd()