IEnumerator shake() { float waitTime = Random.Range(shakeThreholdMinMax.x, shakeThreholdMinMax.y); yield return(new WaitForSeconds(waitTime)); shakeY = Random.Range(shakeYMinMax.x, shakeYMinMax.y); transform.localPosition = new Vector3(transform.localPosition.x, shakeY, transform.localPosition.z); if (trainManager != null) { trainManager.TrainShake(); } StartCoroutine(shake()); }