/// ------- Funções de colisão e merge do bloco ---------- private void OnCollisionEnter2D(Collision2D collision) { // verifica se foi atingido pelo tiro // se for um tiro de mesmo valor realiza o merge // caso contrário ignora a colisão com o tiro if (collision.gameObject.CompareTag("Tirinho")) { // avalia se o tiro tem o componente requerido if (collision.gameObject.GetComponent <BulletInstance>()) { int bulletValue = collision.gameObject.GetComponent <BulletInstance>().getBulletValue(); int blockValue = blockData.getValue(); // Avalia se o tiro possui o mesmo valor que o bloco e se o bloco já não está em seu ultimo valor // Se o valor do bloco for diferente o tiro é rebatido e ignorado // Se o valor do bloco for igual ou maior que o máximo possivel ele ignora pois o bloco vai se destrui sozinho em pouco tempo // Caso contrário dos dois, realiza o merge if ((bulletValue == blockValue) && (blockValue < blockData.getMaxPosibleValue())) { // seta o novo valor int newValue = blockValue * 2; updateBlockValue(newValue); // Faz o merge na corotina esperqando a animação de mudança de cor StartCoroutine(waitAnimationToMerge()); // BIG HUGE OBS: ----------------------------------------------------------------! // o outro código estava tentando repetir as iterações do merge por aqui (coisa nada saudavel) // o objetivo é tentar deixar o merge recursivo pra caralho // // Outra coisa que esse código estava fazendo era verificar se o bloco estava sozinho na fileira // Aqui deve ficar somente o codigo que faz o bloco sumir // que deve ser chamado por onde a grid estará vericando se a linha está sozinha ou não // // o merge também está funcionando em funcao do bloco // o ideal é ele funcionar em funcao da linha do bloco com referencia ao bloco atingido // destroí o tiro Destroy(collision.gameObject); // Respawna o player em outra posição (avaliar se é bom isso ou não) -------- ! //Player.gameObject.GetComponent<SpawnBall>().respawnBall(this.transform.position.x); } } else { Debug.LogError("Falta componente BulletInstance no tiro"); } } }