- Home /
Using an Audio Listener on an Audio Source
Does anyone know how to use the output of an Audio Listener on an Audio Source component? I'm wanting to do something where a camera is being used to render an image for a display in the scene, such as a television, and I like to be able to get the audio from that camera.
I know that I can't have multiple Audio Listeners active at once but in this case it makes the most sense for me to do. I just need it to play from another game object in the scene as opposed to where the player camera is.
Answer by Jonatan Crafoord · Feb 18, 2015 at 04:07 PM
Unfortunately I don't think it is possible in Unity to get this to work with several audio listeners, given the restriction you've already mentioned.
Depending on what you want to accomplish, there are a couple of possible workarounds. If you want the player to interact with the TV and only hear the sounds from that location, it is simple enough to put the listener on a separate game object and move that game object depending on which camera is in focus.
If you want the TV to act as a 3d positioned audio source itself, I would first look at "cheating" by creating a piece of rendered audio rather than simulating it entirely. If this doesn't cut it, you could perhaps create your own "virtual" audio listener. For example you could gather all the playing audio sources in your scene, measure their fall-off values and compare them to this other point in space that you want to listen to. If they are within range, you could either duplicate the sources and place them on the TV with appropriate volume, or render their data using something like MonoBehaviour.OnAudioFilterRead. Depending on platform and bottlenecks I'd be wary of potential performance hits, but it should be doable. :)
Good luck!