- Home /
My footstep sounds do not play when i walk, whats wrong with my script?
So i am trying to add footsteps when i walk to my character. when i walk nothing happens, but when i stop the audio plays. whats up with my script? using UnityEngine; using System.Collections;
public class sounds : MonoBehaviour {
public AudioClip feet;
void Start () {
audio.clip = feet;
isWalking = false;
}
void Update () {
if(Input.GetAxis ("Vertical") != 0 || Input.GetAxis ("Horizontal") != 0){
Debug.Log ("we are moving");
audio.Play ();
}
else{
Debug.Log ("we are not moving");
}
}
}
when i play the game the debug.logs work like they're supposed to but the music still doesn't play right. if it the log says "we are moving" shouldn't the music play too, but it plays after?
Answer by clunk47 · Aug 07, 2013 at 11:11 PM
You're playing the audio over and over every frame. Try checking if the audio is playing or not. In this case, only play it if it is not already playing.
if(!audio.isPlaying)
audio.Play();
Notice the ! exclamation mark in front of audio.isPlaying? This means the opposite of isPlaying, or "not". Also depending on the length of the clip, consider having a look at PlayOneShot
Then you need to stop the audio when you are stopped.
//.....
else
{
Debug.Log("We are not moving.");
if(audio.isPlaying)
audio.Stop();
}
//.....
yup that fixed it, but i did know what ! means, I'm not that dumb :)
lol I just always try to put every bit of information I can just in case someone hasn't learned something like this yet. Glad I could help :)
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
Audio listener to mono then to left or right speaker? 2 Answers
Playing each channel of a midi track on separate audio sources? 0 Answers
how to avoid audio increase when 2 identical sounds are played at the same time? 1 Answer