MapAniPlayer Add(IEnumerator ani, Action onEnded = null) { tail = new AniNodeInfo() { Ani = ani, OnEnded = onEnded }; anis.Enqueue(tail); if (anis.Count == 1) { StartCoroutine(PlayAnis()); } return(this); }
IEnumerator PlayAnis() { while (anis.Count > 0) { var pair = anis.Peek(); var ani = pair.Ani; yield return(ani); var onEnded = pair.OnEnded; onEnded?.Invoke(); anis.Dequeue(); } tail = null; }