정보글 겸 일지글



에셋번들을 통해서 씬에 소환된 오브젝트는 오디오를 재생해도 소리가 나오지 않는 버그가 있는데


이걸 무려 약 1년만에 드디어 해결한 기념으로 그 방법을 공유하려고 함



정확히 하자면 이 버그는 에셋 번들을 통해 소환된 오브젝트에 달린 오디오 소스가 지정된 믹서를 통해 소리를 낼 수 없게되는 버그임


a15714ab041eb360be3335625683746f0153452fd6a4ec89d63266f39916cd6e04c01f046378080289ea37b778


아웃풋에 믹서를 안넣어두면 정상적으로 나오긴 한다.



그런데 그냥 보면 클립도 잘 있고 아웃풋도 잘 지정되어 있는데 소리만 안나오는거


찾아보니까 유니티 커뮤니티에서도 이 버그가 아직까지 안고쳐졌다고 하는 것 같음



유니티가 안고쳐주니 다른 방법을 써서 유회를 해야하는데...



해결방법은 간단함


믹서를 오브젝트 소환 후에 바로 재지정 해주면 된다.


a15714ab041eb360be3335625683746f0153452fd6a4ec89d63266f29816cd6ebe74cf64f30bbd931485117e644a


내 경우에는 이렇게 믹서를 리소스 폴더에 두고 원할 때 바로 지정이 가능하도록 했음


이거는 사운드 매니저 클래스인데 여기서 awake에서 믹서를 등록해두고 


다른 클래스에서 원할때 ReassignMixerGroup 함수를 호출하면, 그 오브젝트에 대해서 사운드 매니저가 오디오소스를 모두 찾아서 믹서를 지정해줌



뭐 이건 그냥 내가 쓴 예시 코드고


중요한건 에셋번들로 로드된 오디오 소스는 소환 후 믹서를 새로 지정 해야 소리가 해당 믹서를 통해 재생된다는 것이다.




간단하지만 외국 커뮤니티에도 제대로된 해결법이 없길래 올려봄!