private void OnCollisionEnter(Collision collision) { GameObject thrownObject = collision.gameObject; if (thrownObject.CompareTag("ThrownObject")) { if (destructionType == DestructionType.FAILURE) { health.AcceptDamage(20); } else { var particleSystem = effect.GetComponent <ParticleSystem>(); Vector3 justBefore = new Vector3(thrownObject.transform.position.x, thrownObject.transform.position.y, thrownObject.transform.position.z - 0.1f); GameObject gameObject = Instantiate(effect, justBefore, Quaternion.identity); Destroy(gameObject, particleSystem.main.duration); } broker.Deregister(thrownObject); Destroy(thrownObject); } }