public void Update() { float step = convergenceSpeed * Time.deltaTime; if (passed) { hueChange++; if (hueChange == 4) { hueChange = 0; } //GameObject plane = transform.GetChild(transform.childCount - 1).gameObject; Destroy(plane); gameObject.transform.DetachChildren(); GameObject[] floats = GameObject.FindGameObjectsWithTag("float"); foreach (GameObject g in floats) { Rigidbody rb = g.GetComponent <Rigidbody>(); try { rb.constraints = RigidbodyConstraints.None; rb.isKinematic = false; } catch { } try { rb.gameObject.GetComponent <SphereCollider>().radius = .4f; } catch { } Vector3 direction = transform.position - rb.gameObject.transform.position; rb.AddForce(direction.normalized * 20, ForceMode.Impulse); Invoke("Explode", 1f); } if (changeScore) { scoreScript.AddToScore(); changeScore = false; } foreach (GameObject g in floats) { Destroy(g, 3f); } } if (failed) { Destroy(this.gameObject); GameObject[] floats = GameObject.FindGameObjectsWithTag("float"); foreach (GameObject g in floats) { Rigidbody rb = g.GetComponent <Rigidbody>(); rb.constraints = RigidbodyConstraints.None; rb.AddExplosionForce(10.0f, managerScript.convergenceSpot.transform.position, 10.0f); } foreach (GameObject g in floats) { Destroy(g); } managerScript.redExplosion.Play(); Cam.GetComponent <AudioSource>().PlayOneShot(badExplode, 2f); Destroy(this.gameObject); // lose a life livesScript.LoseLife(); } }