public void OnRepaired(bool obj) { if (obj && brokenCycleBehaviour != null) { brokenCycleBehaviour.RushAhead(); } else if (!obj && brokenCycleBehaviour != null) { brokenCycleBehaviour.FallDown(); } distanceSlider.value = 1; brokenCycleBehaviour = null; pursuitOn = true; repairMaster.OnRepaired -= OnRepaired; if (UnityEngine.Random.Range(0, 2) == 0) { snowParticleSystem.Stop(); rainParticleSystem.Play(); } else { rainParticleSystem.Stop(); snowParticleSystem.Play(); } StartCoroutine(ReachTillCycleCoroutine()); }
IEnumerator ReachTillCycleCoroutine() { distanceSlider.maxValue = currentWait; distanceSlider.value = 1; while (pursuitOn) { yield return(new WaitForSeconds(1)); distanceSlider.value++; if (distanceSlider.value >= currentWait) { pursuitOn = false; } } Debug.Log("Caught up to cycle"); obstacleSpawner.BlockRow(brokenCycleSpawnPoint); brokenCycleBehaviour = Instantiate(brokenCycle, brokenCycleSpawnPoint.position, Quaternion.identity).GetComponent <BrokenCycleBehaviour>(); yield return(null); }