Beispiel #1
0
    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);
    }
Beispiel #2
0
    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;
    }