Пример #1
0
 public override void ClearBoard()
 {
     base.ClearBoard();
     for (int x = 0; x < pieces.GetLength(0); x++)
     {
         for (int y = 0; y < pieces.GetLength(1); y++)
         {
             PiecePool.DestroyPiece(pieces [x, y]);
         }
     }
     pieces = new Piece[0, 0];
 }
Пример #2
0
    protected virtual IEnumerator DestroyCoroutine(System.Action <Piece> onComplete, float delay = 0)
    {
        if (delay > 0)
        {
            yield return(new WaitForSeconds(delay));
        }

        state = PieceState.Destroyed;
        transform.DOScale(Vector3.one * 0.5f, AnimationSettings.DestroyTime).SetEase(Ease.InBack);

        yield return(new WaitForSeconds(AnimationSettings.DestroyTime * destructionTimePercentage));

        onComplete.Invoke(this);

        yield return(new WaitForSeconds(AnimationSettings.DestroyTime * (1 - destructionTimePercentage)));

        PiecePool.DestroyPiece(this);
    }