Спаун врагов

Программирование на Юнити.

Спаун врагов

Сообщение MrDmitry 12 мар 2023, 17:37

Делаю простую вещь, спаун игроков. Спаун происходит по таймеру в определенной вещи. Но то что происходит выбивает меня из калии.

Синтаксис:
Используется csharp
[SerializeField]
    [Header("Враги которые спауняться")]
    private List<GameObject> agent = new List<GameObject>();
    [SerializeField]
    [Header("Время между появлением врагов")]
    private float timeSpawn = 2;
    [Header("Игра окончена")]
    public bool GameIsOver  = false;

 private void Awake()
    {
        StartCoroutine(CreateAgent());
    }

IEnumerator CreateAgent()
    {
int CurrCountAgent = 0;
        while (!GameIsOver)
        {
yield return new WaitForSeconds(timeSpawn);
CurrCountAgent++;
Debug.Log("Прошли " + timeSpawn + " сек Это " + CurrCountAgent);
            GameObject enemy = Instantiate(agent[Random.Range(0, agent.Count)], new Vector3(0,0,0), Quaternion.identity);
        }
    }



В массив agent добавлено 4 GameOBject.

1 Спаунится нормально, а дальше получаю ошибку

ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index


Причем по Debug.Log я вижу такую картину

Прошли 2 сек итерация 1 (Первый появился)
Прошли 2 сек итерация 1 (должна быть итерация 2)
Ошибка написанная выше
Прошли 2 сек итерация 2 (Появляется второй)
Прошли 2 сек итерация 1 (Почему 1? o0)
Ошибка написанная выше
Прошли 2 сек итерация 3 (Появляется третий)
Прошли 2 сек итерация 1 (Почему 1? Откуда берется этот возврат к 1 итерации? )
ну и т.д

Но самое забавное если я изменю строчку инстанса, чтоб создавался только последний GameObject из листа агентов, то ошибок нет

Синтаксис:
Используется csharp
GameObject enemy = Instantiate(agent[3], new Vector3(0,0,0), Quaternion.identity);


И обратно, если я поставлю любое число входящее в рендж листа, 0,1 или 2 возникает ошибка.

Что я делаю не так???
MrDmitry
UNITрон
 
Сообщения: 223
Зарегистрирован: 05 авг 2017, 17:21

Re: Спаун врагов

Сообщение MrDmitry 12 мар 2023, 18:16

Все вопрос решен, я дурак ))
MrDmitry
UNITрон
 
Сообщения: 223
Зарегистрирован: 05 авг 2017, 17:21


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9