#c# #unity3d
#c# #unity3d
Вопрос:
Я просто хочу, чтобы шар перестал появляться, когда включено меню перезапуска, но я не могу заставить его работать вообще, может кто-нибудь, пожалуйста, помогите. Вот сценарий
void Start()
{
StartCoroutine(SpawnBallLoop());
}
IEnumerator SpawnBallLoop()
{
while (gameOver == false)
{
yield return new WaitForSecondsRealtime(2f);
SpawnBall();
}
}
void SpawnBall()
{
Instantiate(ball, new Vector3(Random.Range(-2.18f, 2.18f), 4.6f, 0f), Quaternion.identity);
}
Комментарии:
1. Относится ли это к Unity? Тогда, пожалуйста, отметьте свой вопрос соответствующим образом
2. Я не вижу никакого кода для меню в вашем фрагменте… В общем: либо set
gameOver = true
.. useStopCoroutine
… отключите этот скрипт… уничтожьте его… существует так много возможных решений в зависимости от вашего варианта использования…..
Ответ №1:
Вы можете использовать StopCoroutine, как сказал Хьюго, но тогда я не вижу смысла даже проверять условие gameOver
while. Действительно, я думаю, что это избыточно в любом случае:
Если бы вы установили gameOver
значение true
, вы бы эффективно остановили цикл while, поэтому шары должны перестать появляться. Но тогда вам все равно придется перезапускать сопрограмму, поскольку gameOver
снова становится false , следовательно, полностью устраняется необходимость в while
условии.