namespace UniTask { public class StepScheduler : IScheduler { LockQueue m_taskQueue = new LockQueue(); public void Enqueue(TaskChain item) { m_taskQueue.Enqueue(item); } TaskChain m_chain; public int UpdateAndGetTaskCount() { if (m_chain != null) { var status=m_chain.Next(); if(status==ExecutionStatus.Continue) { // m_item継続中 return m_taskQueue.Count; } m_chain = null; } int count; m_chain = m_taskQueue.Dequeue(out count); return count; } } }