- Home /
Different audio on different surface script HELP
Hi! The thing I'm trying to do is to have different audio to play when you walk on different surfaces. I'm using a scipt I got on the forum but it's not working for me. I have different colliders in my scene with different tags depending on what surface it is but it not seems to work. Please check if something is wrong.
//Written by Grady Featherstone
//Create a variable to tell whether the player is walking or not
var isPlayerWalking = false;
var metalFloorSound : AudioClip;
var grassDirtGroundSound : AudioClip;
var riverStreamPuddlesSound : AudioClip;
function Update(){
//Check to see if the player is walking by checking for input from the walking keys
if(Input.GetKeyDown("a") || Input.GetKeyDown("w") || Input.GetKeyDown("s") || Input.GetKeyDown("d")){
//if those keys are pressed, the player must be walking...
isPlayerWalking = true;
}
else{
//if those keys aren't presesd, the player can't be walking.....
isPlayerWalking = false;
}
}
function OnCollisionEnter(collision : Collision){
//Check if the player is walking...
if(isPlayerWalking == true){
//If the player is walking, check what sort of ground they're walking on, and then play that sound...
if(collision.gameObject.tag == "metalFloor"){
audio.PlayOneShot(metalFloorSound);
}
else if(collision.gameObject.tag == "grassDirtGround"){
audio.PlayOneShot(grassDirtGroundSound);
}
else if(collision.gameObject.tag == "riverStreamPuddles"){
audio.PlayOneShot(riverStreamPuddlesSound);
}
}
}
Why don't you use a dictionary ins$$anonymous$$d of a bunch of if/else?
What do you mean? I'm pretty new to scripting so please give an example or the finished script :)
He is referring to the c# type Dictionary. You can use it to store a list of strings that are associated with a certain audio file directly or through name so you can do Dictionary.TryGetValue to figure what sound to play ins$$anonymous$$d of having a giant if else statement.
O$$anonymous$$ I will check that out. But if you look at my scipt, do I miss something?
The player and surfaces have colliders? At least one has rigidbody?
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Android Audio Delay 0 Answers
animation on key press problem 1 Answer
How do Ensure that a series of int's are never the same? 1 Answer
Tutorial level 2 Answers