- Home /
Sound Clip isn't playing when triggered.
I want my kill streak sound to be triggered when the KSsound value reaches 250. However the sound doesn't play when the value reaches 250.
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class KSsoundScript : MonoBehaviour {
public static int KSsound;
AudioSource clip;
void Awake ()
{
clip = GetComponent <AudioSource> ();
}
void Update ()
{
if (KSsound >= 250)
{
clip.Play ();
}
}
}
Surely because you are playing the clip every frame while $$anonymous$$Ssound >= 250
if ($$anonymous$$Ssound >= 250 && !clip.isPlaying)
{
clip.Play ();
}
Hm...
i would say try:
gameObject.Play(clip);
might work.
Have you any source to support what you are saying ? It does not make sense.
Answer by HenryStrattonFW · May 30, 2017 at 07:17 PM
This is because your condition only checks >=. This will always be true once you hit 250, meaning that each and every frame, you request the sound to play again, meaning it will restart if it was already playing, meaning you never here it because it is forever restarting before it can play anything.
Try setting a flag when you call Play() and then add a check of this flag to the kSound>=250 condition.
Note however this will mean the sound only ever plays once, never again. so depending on your plans there may be better ways of doing this. But if you only ever want this sound to play once, when you pass 250 then the flag approach should work just fine.
Your answer
Follow this Question
Related Questions
Audio not coming out of speakers 1 Answer
AUDIO ISSUES - PlayOneShot... is cutting short... I think? 2 Answers
Question about audio (AudioSource). My ingame sound doesn't sound like the original audio file? 3 Answers
How to start a sound not from it's start ? 2 Answers
Play many sounds (60 to 200) without Unity cutting sound 1 Answer