IEnumerator YieldForSync(System.Action callback, Beat.Timing timing) { int startCount = tickCounter; bool isStartTick = true; bool waiting = true; while (waiting) { isStartTick = (isStartTick && startCount == tickCounter); if (isStartTick) { yield return(false); } isStartTick = false; if (timing == Timing.Sixteenth || tickCounter % (int)timing == 1) { waiting = false; } else { yield return(false); } } }
public void Sync(System.Action callback, Beat.Timing timing = Beat.Timing.Measure) { StartCoroutine(YieldForSync(callback, timing)); }