Match 3 - Bouncing Fill

I try to make a Match 3 Game as a kind of Hello World project. It is based on a a tutorial video project.

Now I have a simple problem. All comercial games fil their grids with a little “bounce” animation when the pieces (mostly candy stuff) finds its destination place after falling.

The falling is made of Coroutines and works smoothly to the bottom. At the destination field I start a little “bounce” animation clip for each piece. (transform scale and position animation)

Problem: Some animations start to play but most other are not starting. The Debug.Log shows all are starting.

To come closer to the reason I made a simple test. At the End of the Fill Routine I bounce all 81 (9x9 grid) pieces but no piece is animated.

   public IEnumerator Fill() {
        bool needRefill = true;
        while (needRefill) {
            for (int y = 0; y < yDim; y++) {
                for (int x = 0; x < xDim; x++) {
                    pieces[x, y].JustMoving = false;
                }
            }
            yield return new WaitForSeconds(fillTime);
            while (FillStep()) {
                yield return new WaitForSeconds(fillTime);

            }
            needRefill = ClearAllValidMatches();
        }
        for (int y = 0; y < yDim; y++) {
            for (int x = 0; x < xDim; x++) {
                pieces[x, y].JustMoving = false;
                pieces[x, y].MovablePieceComponent.BouncePiece();
            }
        }
    }

The BouncePiece which ist called looks like this:

    public void BouncePiece() {
        bounceCoroutine = BounceCoroutine();
        StartCoroutine(bounceCoroutine);
    }

    private IEnumerator BounceCoroutine() {
        if (bounceAnimation ) {
            Animator animator = GetComponent<Animator>();
            if (animator) {
                Debug.Log("Bounce x="+piece.X+" y="+piece.Y);
                piece.BounceRunning = true;
                animator.Play(bounceAnimation.name);
                yield  return new WaitForSeconds(bounceAnimation.length);
            }
        }
    }

All Debug for the 81 pieces is shown but only a few animations are started on screen.
What could be wrong?
If animations are starting then only the last ones in the loop.

Thanks for your help.
Michael

This might sound stupid so don’t shut the messenger, I wonder if this is something to do with the coroutine, it could also be how the animation is setup, are you only using a single coroutine “BounceCoroutine” or are they 81 of these because of the 9x9 grid, because you have the coroutine embedded in each individual gameobject this might be the issue.

Thanks for your answer.
There should be 81 instances of the pieces in the grid.
pieces[x,y] is containing GamePiece class instances.
The GamePieces has a Animator Component.
So I guess each Piece schould have its own animation.

I have no long experience with Unity. Maybe there is a better way do animate a piece drop
with some kind of bounce in 2D without Physics.