private void Start() { // initialising GA sdk GameAnalytics.Initialize(); //Declare all level related parameters - How many rings? Are the rings moving? LevelController.SetLevel(); ringList.Add(Instantiate(rings[0], new Vector3(0, 0, 0), Quaternion.identity)); // initial spawn of rings at origin for (int i = 0; i < (ringNumber - 1); i++) { ringList.Add(Instantiate(rings[Random.Range(0, rings.Length)], new Vector3(0, 0, 0), Quaternion.identity)); } ringList[ringList.Count - 1].GetComponent <Circles>().Perfect.SetActive(false); // arranges rings by x offset depending on ring size AddOffset(); deltaRings = ringList[ringNumber - 1].transform.position.x - ringList[0].transform.position.x; //Add finishline after the last circle var finishPos = ringList[ringNumber - 1].transform.position + new Vector3(FinishLineOffset, 0, 0); //Instantiate a random minigame at the end spawnedFinishLine = Instantiate(FinishLine, finishPos, Quaternion.identity); var minigame = Minigames[Random.Range(0, Minigames.Length)]; spawnedDartBoard = Instantiate(minigame, finishPos, Quaternion.identity); spawnedFinishLine.SetActive(false); spawnedDartBoard.SetActive(false); camRef = finishPos.x; for (int i = 1; i < ringNumber; i++) { //Create a counter object for each circle float offset = 0; if (ringList[i].tag == "ringsmall") { offset = 0.75f; } else if (ringList[i].tag == "ringmedium") { offset = 0.8f; } else if (ringList[i].tag == "ringlarge") { offset = 0.9f; } var counter = Instantiate(Counter, ringList[i].transform.position - new Vector3(offset, 0, 0), Quaternion.identity); counter.GetComponent <Counter>().Ring = ringList[i]; //Hold reference to the ring //Check if its moving Rings level if (movingRingsLevel) { //Randomly make the circles move var ran = Random.Range(0, 1f); if (ran <= CircleMoveChance) { ringList[i].GetComponent <Circles>().MakeCircleMove(); } } } textCurrentscore.text = PlayerPrefs.GetInt("score", 0).ToString(); textLevelCurrent.text = LevelController.GetLevel().ToString(); textLevelNext.text = (LevelController.GetLevel() + 1).ToString(); mainLevel.text = "level " + LevelController.GetLevel(); mainScore.text = PlayerPrefs.GetInt("score", 0).ToString(); mainHighscore.text = PlayerPrefs.GetInt("highscore", 0).ToString(); }