사운드 오브 좀비 게임은 아래와 같은 조건에 맞게 게임을 성공하거나 실패한다.
게임 성공
게임 실패
따라서 성공과 실패 시 게임 결과 화면으로 이동하게 된다.
이 과정을 씬을 통해 이동하는 것으로 구현했는데
씬 이동 시 데이터를 전달하는 방법을 알아보려 한다.
사실 데이터 전달은 아니다.😁
데이터를 전달하려했는데 차라리 전역 변수를 쓰는 방법이 깔끔하다는 생각이 들었다.
음표의 개수, 목숨, 시간을 제어하는 스크립트에 static클래스를 만들어 static 변수를 선언해 준다.
음표의 개수와 시간을 결과 화면에 표시할 것이기 때문에
time과 music 변수를 선언 하였다.
public static class SceneVariable
{
public static string time = "";
public static int music = 0;
}
그 다음은 간단하다.
아래와 같은 형식으로 값에 접근하면 된다.
SceneVariable.music
예시 코드
public void UpdateMusicBox(int count)
{
SceneVariable.music = int.Parse(PointText.text)+count //전역 변수에 값 대입
PointText.text = musicbox.ToString();
if(musicbox == 16)
{
//조건에 맞는다면 씬 이동
SceneManager.LoadScene("GameClear");
}
}
이동한 씬에서는 아래와 같이 접근해서 사용하면 된다.
public Text TimerText;
public Text ScoreText;
// Start is called before the first frame update
void Start()
{
TimerText.text = SceneVariable.time.ToString();
ScoreText.text = SceneVariable.music.ToString();
}
완성!