private void OnTriggerEnter2D(Collider2D collision) { //Debug.Log(collision.name); if (collision.gameObject.tag == "ball" & !detached & !floored) { audioData.Play(0); Destroy(collision.gameObject); health = health - 50; building.DrawTiles(); if (health <= 0) { Instantiate(hit, transform.position, Quaternion.identity); building.UpdateState(coords, 2); float strength = Random.Range(0.5f, 1.5f); transform.parent = null; detached = true; Vector2 fDir = Vector2.up - Vector2.right; rb.AddForce((fDir * 5.0f + 2.5f * rb.velocity.normalized) * strength, ForceMode2D.Impulse); transform.tag = "block"; this.GetComponent <BoxCollider2D>().isTrigger = false; } else { Instantiate(hit, transform.position, Quaternion.identity); } } if (collision.name == "floor" & detached & !floored) { detached = false; rb.velocity = Vector2.zero; floored = true; this.GetComponent <BoxCollider2D>().isTrigger = false; rb.gravityScale = 10; } }