TitleManager 스크립트 변경 

TitleManager.cs
0.00MB

타이틀 화면의 BGM

타이틀 화면의 BGM은 TitleManager 스크립트에서 실행합니다. Start메서드에 다음과 같이 추가합니다. 

SoundManager클래스의 soundManager변수는 맨처음 생성된  SoundManager가 저장된 변수입니다.

이 값으로 SoundManager클래스의 메서드를 호출할 수 있습니다. BGMType.title을 인수로 전달해 PlayBgm메서드를 호출할 수있습니다.

void Start()  {
    string sceneName = PlayerPrefs.GetString("LastScene");      //저장 된 씬
    if (sceneName == "")
    {
~생략
    }
    //타이틀 BGM 재생
    SoundManager.soundManager.PlayBgm(BGMType.Title);
}

게임중/보스전 BGM

RoomManager.cs
0.00MB

게임중 각 씬의  BGM은 RoomManager의 Start 메서드에서 실행합니다. 현재 저장된 현재의 씬이름을 PlayerPrefs.GetString 으로 읽어 보스 스테이지의 씬 이름인지 확인후 재생할 BGM을 바꿉니다.

Start()

    void Start()
    {
        //플레이어 캐릭터 위치
        //출입구를 배열로 얻기
~생략
         // 씬 이름 얻기
        string scenename = PlayerPrefs.GetString("LastScene");
        if (scenename == "BossStage") {
            //보스 BGM 재생
            SoundManager.soundManager.PlayBgm(BGMType.InBoss);
        }   else{
            // 게임 중 BGM 재생
            SoundManager.soundManager.PlayBgm(BGMType.InGame);
        }
    }

재시도후 SE

UIManager클래스의 Retry 메서드에도 다음과 같이 사운드 재생코드를 추가합니다. soundManager의playingBGM에 BGMType.None을 설정한 후 초기화하면 씬을 불러온 뒤 각 스테이지의 BGM이 재생됩니다.

UIManager.cs
0.00MB

Retry()

    public void Retry()
    {
        //HP 되돌리기
        PlayerPrefs.SetInt("PlayerHP", 3);

        //BGM 제거
        SoundManager.plyingBGM = BGMType.None;
        
        //게임 중으로 설정
        SceneManager.LoadScene(retrySceneName);   //씬 이동
    }

 

+ Recent posts