// This coroutine checks once the disk stops moving // the results and determines whether the problem was solved successfully. IEnumerator ShowResults() { var solution = fsolver.FindSolution(); float response = 0f; string curr_scene = SceneManager.GetActiveScene().name; if (curr_scene == "FDistance") { response = float.Parse(fim.distanceInput.text); } else if (curr_scene == "FIV") { response = float.Parse(fim.ivInput.text); } else if (curr_scene == "Friction") { response = float.Parse(fim.frictionInput.text); } // We wait 2 seconds so user can see it stopped. yield return(new WaitForSeconds(1)); var wideTarget = GameObject.Find("Target/Outer Circle"); float targetWidth = wideTarget.GetComponent <SpriteRenderer>().sprite.bounds.size.x; var diskPos = transform.position.x; var targetPos = target.transform.position.x; Debug.Log((Math.Abs(response - solution))); if ((Math.Abs(response - solution) < 0.01f)) { sceneLoader.LoadScene("Win Screen"); } else if (targetPos - targetWidth / 2 < diskPos & targetPos + targetWidth / 2 > diskPos) { sceneLoader.LoadScene("Improve Accuracy"); } else { sceneLoader.LoadScene("Missed Screen"); } }