Hey guys,
I have a breathing sound effect I have for when my character is sprinting but I struggle to get it to play. Any help please?
if(Input.GetKey(KeyCode.LeftShift))
{
if(energy > 0)
{
moveSpeed = sprintSpeed;
energy -= Time.deltaTime * energySpeed;
GetComponent.<AudioSource>().PlayOneShot(RunningSound);
}
else if(energy < 0)
{
energy = 0;
moveSpeed = 5.0;
}
}
Enable looping with AudioSource.loop. Play when shift is held, but down repeat Play() over and over. Stop() when shift is up.
AudioSource Audio;
void Start()
{
Audio = GetComponent<AudioSource>();
Audio.loop = true;
}
void Update()
{
if (Input.GetKey(KeyCode.LeftShift))
{
if (energy > 0)
{
moveSpeed = sprintSpeed;
energy -= Time.deltaTime * energySpeed;
// Ensure that Play() isnt called over and over again.
// Similer to if (Input.GetKeyDown(KeyCode.LeftShift)) in that it'll only call once after LeftShift is down.
if (!Audio.IsPlaying)
{
Audio.Play();
}
}
else if (energy < 0)
{
energy = 0;
moveSpeed = 5.0;
}
}
else if (Input.GetKeyUp(KeyCode.LeftShift))
{
if (Audio.IsPlaying)
{
Audio.Stop();
}
}
}