public IEnumerator CheckLineClear() //int { int lines = 0; List <int> rows = GetFullLines(rowSum, ref lines); List <int> columns = GetFullLines(columnSum, ref lines); foreach (int row in rows) { rowSum[row] = 0; lineSum.UpdateColumnAndRowText(false, row, 0); for (int x = 0; x < gridManager.Width; x++) { columnSum[x] -= gridManager.GetCellValue(x, row); lineSum.UpdateColumnAndRowText(true, x, columnSum[x]); gridManager.ClearCell(x, row); } } foreach (int column in columns) { columnSum[column] = 0; lineSum.UpdateColumnAndRowText(true, column, 0); for (int y = 0; y < gridManager.Height; y++) { rowSum[y] -= gridManager.GetCellValue(column, y); lineSum.UpdateColumnAndRowText(false, y, rowSum[y]); gridManager.ClearCell(column, y); } } Debug.Log(lines); linesCleared += lines; if (lines != 0) { IEnumerator next = effectsController.LineClearAnim(rows, columns); while (next.MoveNext()) { yield return(null); } next = CheckLineClear(); while (next.MoveNext()) { yield return(null); } } yield break; }