I have four Camera3D's and one AudioListener3D which is activated immediately upon starting the scene. This works till I switch the current camera. The AudioListener3D doesn't override the camera listener of the new camera but switching back to the original camera shows that the AudioListener3D still overrides that camera.

I have tried to do AudioListener3D.make_current() after every camera switch but this does not do anything and AudioListener3D.is_current() also says that the AudioListener3D is current even while switching to other cameras.

Does anyone have an idea how I can fix this?

  • Tomcat replied to this.
  • For anyone that also wants to know a possible solution I have found after trying different things:

    Instead of using the camera as the current camera, I have added a Control Node with a TextureRect that takes a viewport as texture. Then I placed the camera as child of a subViewPort in the 3D side of things. Now the screen is filled with that camera view, but no sound is passed through because TextureRect only has access to the visual feed. The AudioListener3D then is the only sound that the player receives.

    I hope it helps 🙂

    For anyone that also wants to know a possible solution I have found after trying different things:

    Instead of using the camera as the current camera, I have added a Control Node with a TextureRect that takes a viewport as texture. Then I placed the camera as child of a subViewPort in the 3D side of things. Now the screen is filled with that camera view, but no sound is passed through because TextureRect only has access to the visual feed. The AudioListener3D then is the only sound that the player receives.

    I hope it helps 🙂