using Cysharp.Threading.Tasks; using UnityEngine; namespace DanieleMarotta.RiversongCodeShowcase { public class AsyncBudget { private int _max; private int _counter; public AsyncBudget(int max) { _max = max; } public async UniTask TickAsync() { if (++_counter > _max) { _counter = 0; await UniTask.NextFrame(); } } public void Reset(int max) { _max = max; _counter = 0; } } }