@igorloadgame

Почему скрипт некоректно работает в юнити?

Вот сам код, не когда запускаешь игру то появляется миллиард машинок, подскажите в чем проблема?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class makecar : MonoBehaviour
{
    public GameObject[] cars;
    private float[] positions = { 0, -3.13f, 3.13f };
    public GameObject mainButtons;

    void Start()
    {
        StopCoroutine(spawn());
    }

    public void Update()
    {
        if (mainButtons.activeSelf == true)
        {
            StopCoroutine(spawn());
        }
        else if (mainButtons.activeSelf == false)
        {
            StartCoroutine(spawn());
        }
    }
    IEnumerator spawn()
    {
        while (true)
        {
            Instantiate
                (cars[Random.Range(0, cars.Length)],
                new Vector3(positions[Random.Range(0, 3)], 0, -9.5f),
                Quaternion.Euler(new Vector3(0, 180, 0))
                );
            yield return new WaitForSeconds(2.5f);
        }
    }
}
  • Вопрос задан
  • 50 просмотров
Решения вопроса 1
vabka
@vabka Куратор тега C#
Токсичный шарпист
Вы не ту корутину останавливаете.
В строке StopCoroutine(spawn());
Вы создаёте новую, а старая продолжает работать.
А тк это происходит в апдейте - вы на каждый кадр спавните новую машину.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы