I’m stuck with a simple metronome…
Let’s say I want to play a sound 5 times per second, with time btw notes being constant. Again, just like a metronome.
so I tried this code:
void LateUpdate()
{
dt_sum += Time.fixedDeltaTime;
time_btw_notes = 60f / 300f;
if (dt_sum >= time_btw_notes)
{
snare.audio.Play();
dt_sum -= time_btw_notes;
}
}
It works well at 150fps: constant sound real life time distance. But then I add a super particle system to drop fps to less than 30 and distance btw sounds is no longer constant.
I’ve tried with corutines too:
void Start()
{
StartCoroutine(WaitAndPrint(0.2F));
}
IEnumerator WaitAndPrint(float waitTime)
{
while (true)
{
snare.audio.Play();
yield return new WaitForSeconds(waitTime);
}
}
Same problem…
Is there a way to fix this, threads? I’ve read somewhere no Unity functions can be called in a plain c# thread…
Also heard somewhere I can make LateUpdate() to be called as much often as I want but it would also process physics…
Any ideas?
Thanks