Timeout after sound play

Hi, guys!

My code to reproduce a sound when pressing key:

#pragma strict
var audio01 : AudioClip;
function OnGUI() {
    var e : Event = Event.current;
    if (e.isKey) {
        audio.PlayOneShot(audio01);
    }
}

But if not to clamp for a long time at all the button, the sound is looping.

What it is necessary to add that the sound play only once when pressing one key?

Thanks!

When playing a sound when the user is pressing a button, I would use the input class instead of the Event. The event resets itself after each time, and therefor you can get a button is pressed event at least once every frame. So it is not very suitable for this type of input.

So I recommend you using input instead:

void Update()
{
  // play the sound once when a button is pressed.
  if(Input.anyKeyDown == true)
  {
     audio.PlayOneShot(audio01);
  }
}	

The code above plays the sound one time when a button is pressed down.
To be able to play that sound again, the user has to release the button and press
down a button again. Look at the Input documentation for more information and options.

Good luck!