작성
·
170
2
Pin Circle 게임에서 Reset 버튼을 눌러도
스테이지1로 전환되지 않습니다.
예) 스테이지 3까지 클리어 -> 리셋버튼 클릭-> 시작버튼클릭 -> 스테이지4에서 시작(타겟에 적혀있는 스테이지 숫자만 1)
이미 클리어 될때 씬이동이 일어나기 때문입니다.
리셋버튼을 누른후에, 게임 시작을 누르면
타겟에 적혀있는 숫자는 1로 바뀌지만
스테이지1로 씬 전환이 일어나지는 않습니다.
리셋버튼을 누르면 호출되는 함수에서 Level 1로 씬 이동 해주는 코드를 넣어줘야 할것같습니다.
저는 MainMenuUI.cs 에서 이렇게 수정했습니다.
-기존 코드-
public void ButtonClickEventReset()
{
PlayerPrefs.SetInt("StageLevel", 0);
}
-수정 코드-
public void ButtonClickEventReset()
{
PlayerPrefs.SetInt("StageLevel", 0);
int index = PlayerPrefs.GetInt("StageLevel");
SceneManager.LoadScene(index);
}
답변 1
0
좋은 의견 감사합니다.
음 이당시에 왜 이렇게 구성을 했는지 모르겠지만
리셋이 문제가 아니라 게임을 껐다 키면 항상 시작이 Stage01 씬이어서
현재 정보들이 StageN이어도 Stage01을 한판 진행해야 하는 것 같네요.
Reset() 메소드의 저 부분과 함께
MainMenuUI.cs의 Awake() 메소드에 굵은 글씨 코드를 추가해서
현재 index와 동일한 씬으로 바꿔줄 필요가 있을 것 같습니다.
// 현재 스테이지 레벨 정보 얻어오기
int index = PlayerPrefs.GetInt("StageLevel");
if ( index != SceneManager.GetActiveScene().buildIndex )
{
SceneManager.LoadScene(index);
}
// "StageLevel"에 저장된 값은 0부터 시작하기 때문에 +1을 해서 표시
// "Go" 버튼에 표시되는 스테이지 레벨 갱신
textLevelInMenu.text = $"Level {(index+1)}";