정보글 겸 일지글
에셋번들을 통해서 씬에 소환된 오브젝트는 오디오를 재생해도 소리가 나오지 않는 버그가 있는데
이걸 무려 약 1년만에 드디어 해결한 기념으로 그 방법을 공유하려고 함
정확히 하자면 이 버그는 에셋 번들을 통해 소환된 오브젝트에 달린 오디오 소스가 지정된 믹서를 통해 소리를 낼 수 없게되는 버그임
아웃풋에 믹서를 안넣어두면 정상적으로 나오긴 한다.
그런데 그냥 보면 클립도 잘 있고 아웃풋도 잘 지정되어 있는데 소리만 안나오는거
찾아보니까 유니티 커뮤니티에서도 이 버그가 아직까지 안고쳐졌다고 하는 것 같음
유니티가 안고쳐주니 다른 방법을 써서 유회를 해야하는데...
해결방법은 간단함
믹서를 오브젝트 소환 후에 바로 재지정 해주면 된다.
내 경우에는 이렇게 믹서를 리소스 폴더에 두고 원할 때 바로 지정이 가능하도록 했음
이거는 사운드 매니저 클래스인데 여기서 awake에서 믹서를 등록해두고
다른 클래스에서 원할때 ReassignMixerGroup 함수를 호출하면, 그 오브젝트에 대해서 사운드 매니저가 오디오소스를 모두 찾아서 믹서를 지정해줌
뭐 이건 그냥 내가 쓴 예시 코드고
중요한건 에셋번들로 로드된 오디오 소스는 소환 후 믹서를 새로 지정 해야 소리가 해당 믹서를 통해 재생된다는 것이다.
간단하지만 외국 커뮤니티에도 제대로된 해결법이 없길래 올려봄!
어드레서블 참조는 인스턴스 복제되서 그럼 프로파일러 찍어보면 오디오 두개일거임