TitleManager 스크립트 변경
타이틀 화면의 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
게임중 각 씬의 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이 재생됩니다.
Retry()
public void Retry()
{
//HP 되돌리기
PlayerPrefs.SetInt("PlayerHP", 3);
//BGM 제거
SoundManager.plyingBGM = BGMType.None;
//게임 중으로 설정
SceneManager.LoadScene(retrySceneName); //씬 이동
}
'유니티2D게임 > 탑뷰 액션 게임 완성' 카테고리의 다른 글
10.4.x SE재생하기 (0) | 2023.05.25 |
---|---|
10.4 여러 BGM과 SE 적용하기 (2) | 2023.05.25 |
10.3 게임 클리어 처리하기 (0) | 2023.05.25 |
10.3.x 최종 보스 스테이지 만들기 (0) | 2023.05.25 |
10.3.x 보스 캐릭터 전투의 카메라 동작 조정하기 (0) | 2023.05.25 |