- Home /
Disabling Audio Listener in unity 3d
Hello,
I have the cataluna from the car tutorial which i have put into my own game and modified so you can enter and exit the vehicle. A problem I ran into was that now i have multiple cameras and disabling the camera itself does not turn off the audio listener. The code to switch cameras works but i cannot figure out how to disable the listeners. I want the car camera listener when i cam in the car to be one, and the player listener to be on when im out as the player. Ideally i would like to keep in it the same script but im open to creating more scripts to get the job done. Heres the code i have been working with. Right now attached to a trigger object to get in and out of the car.
var car : Transform;
var player : Transform;
var exitPoint : Transform;
var doorTriggerLeft : Transform;
var PlayerCamera : Camera;
var CarCamera : Camera;
var isPlayerVisible : boolean;
function Update(){
if (Input.GetButtonUp("Enter Vehicle")&& isPlayerVisible){
// make player invisible and still standing
player.gameObject.SetActiveRecursively(false);
player.gameObject.active = false;
// parent player to Exit Point
player.parent = exitPoint.transform;
player.transform.localPosition = Vector3(-1.5,0,0);
// parent PlayerParent to car
exitPoint.parent = car.transform;
exitPoint.transform.localPosition = Vector3(-0.01,1,0);
// Enable Car as controllabe object
GameObject.Find("Car").GetComponent("Car").enabled=true;
ChangeCarCamera();
}
else
{
if (Input.GetKeyUp("r")){
// make character visible again
player.gameObject.SetActiveRecursively(true);
player.gameObject.active = true;
// unparent player from everything
player.transform.parent = null;
// parent Exit Point to door Trigger
exitPoint.parent = doorTriggerLeft.transform;
// disable car as controllable
GameObject.Find("Car").GetComponent("Car").enabled=false;
ChangePlayerCamera();
}
}
}
function OnTriggerEnter(Player : Collider) {
isPlayerVisible = true;
}
function OnTriggerExit(Player : Collider) {
isPlayerVisible = false;
}
function ChangeCarCamera() {
PlayerCamera.enabled = false;
CarCamera.enabled = true;
PlayerCamera.GetComponent("Audio Listener").enabled = false;
CarCamera.GetComponent("Audio Listener").enabled = true;
}
function ChangePlayerCamera() {
PlayerCamera.enabled = true;
CarCamera.enabled = false;
PlayerCamera.GetComponent("Audio Listener").enabled = true;
CarCamera.GetComponent("Audio Listener").enabled = false;
}
Answer by Lo0NuhtiK · Jan 29, 2012 at 02:55 AM
Audio[no space between ]Listener.
PlayerCamera.GetComponent(AudioListener).enabled = false ;
or PlayerCamera.GetComponent("AudioListener")...
Better to get the (type) though, rather than the ("string").
You could also just deactivate the camera instead of disabling it's components... PlayerCamera.gameObject.active = false ;
I attempted the second fix as it seemed more efficient. Works like a charm i just changed the camera enabled statements to deactivate or activate them ass needed. Not sure which one of these answers is the most efficient but my immediate issue is solved. Thank you so much
Your answer
Follow this Question
Related Questions
Disabling audio Listener on the child of a newly instantiated gameObject? 0 Answers
Getting Unity to listen to desktop audio 2 Answers
Volume rolloff: Distance to listener not changing. 3 Answers
Why can't I add a script to an object? 1 Answer
Disabling a script inside a coroutine(look at my comment below)? 1 Answer