본문 바로가기
유니티5 독학 & 게임 제작

유니티5 독학하기 그 90번째 걸음-패럴렉스 스크롤 배경음악의 체인지part2

by 인터넷떠돌이 2018. 9. 20.
반응형

안녕하세요?


지난번 포스팅에서는 첫 시도를 했는데, 그게 실패해서 기존의 배경음악이 전혀 꺼지지 않는 현상일 벌어졌다는 것을 언급하면서 마쳤습니다. 그래서 이번 포스팅 안에서는 여러번의 시도를 더 하여서 기거이 기존의 배경음악을 끄고, 새로운 배경음악을 켜는 데 성공했기에, 이를 포스팅 해 보고자 합니다.



일단 enabled항목이 안 듣는것이라고 생각하고, 기존의 사운드는 Stop()명령어를 사용해서 멈추게 하였고, 새로운 배경음악은 Play()메소드를 사용해서 연주를 시작 하도록 했습니다.



그리고 이 작업을 위해서 지난번 포스팅에서 비활성화 시켰는 2번째 패럴렉스 스크롤에 붙어 있는 AudioSource를 다시 활성화 시켰습니다.



그런데 위 스크린샷처럼 SoundState가 1이면서 동시에 StageCondition도 1인 상황인데 전혀 기존의 배경음악의 연주가 중단되지 않았습니다.



알고봤더니 if문의 조건이 약간 잘못된 것으로, 위 스크린샷처럼 다시금 조건을 조정해서 밤의 들판길에서는 기존의 배경음악이 연주되다가 바뀌는 조건에서는 다르게 인식이 될 수 있도록 만들었습니다.



그래서 기존의 배경음악이 안 나오도록 잡는 데는 성공했습니다만, 새로운 배경음악은 재생이 되지 않아서 이번에는 Play On Awake라는 항목에 체크를 해 보았습니다. 그렇게 해도 결과는 영 신통치는 않았습니다.




혹시나 시간차가 필요한 것인가 싶어서 한번 코루틴을 주어서 0.5초간 기다리도록 명령을 삽입해서 다시금 재생을 시켜 보았습니다.



그래도 새로운 배경음악은 전혀 재생이 되지 않는 현상이 벌어졌습니다. 그래서 이번에는 혹시나 싶어서 Update()에 Play()시키라는 명령이 들어가 있다=매 프레임마다 Play버튼을 눌러서 음악이 재생이 안 되는 것인가 싶어서 다음의 작업에 들어가 보았습니다.



먼저 bool형식의 변수를 언선해서 stage2인 사막배경에 들어온 것인지를 확인하게 할 목적으로 만든 변수를 만들어 줍니다.



그리고 if문을 가지고서 단 한번만 실행이 되도록 만들어 줍니다.그래서 이후로 stage2라는 변수가 true값으로 변경이 되었기 때문에, 계속해서 Play버튼을 누르는 일은 없어 질 것이라는 생각이 듭니다.



이렇게 하는 것으로 일단은 일이 해결하나 되기는 했습니다. 하지만 이제 남아 있는 의문이 하나 있습니다. 과연 사막배경으로 하는 화면에서 게임 오버가 되어서 다시 시작해도 여전히 사막의 배경음악은 재생이 되는가 하는 의문이 남아 있습니다. 이 의문에 대해서 한번 테스트를 거친 다음에, 문제가 있다면 수정해서 다음 단계로 나아가야 겠다는 생각이 듭니다.

반응형