private void DropNodes() { GameNode curr_node = null; GameNode lower_node = null; int new_indy = 0; for (int row_indy = _map_height - 2; row_indy >= 0; row_indy--) { for (int col_indy = _map_width - 1; col_indy >= 0; col_indy--) { curr_node = _map[row_indy, col_indy]; if (Equals(curr_node, null)) { continue; } new_indy = row_indy + 1; lower_node = _map[new_indy, col_indy]; Debug.LogFormat("{0}", curr_node); while (Equals(lower_node, null) || lower_node.IsDestroyed()) { _map[new_indy, col_indy] = curr_node; _map[new_indy - 1, col_indy] = null; new_indy = new_indy + 1; if (new_indy == _map_height) { break; } lower_node = _map[new_indy, col_indy]; Debug.Log(this); } } } }