Как удалить объект в List C# Unity?
using System.Collections.Generic;
using UnityEngine;
public class SpawnerEnemy : MonoBehaviour
{
[SerializeField] private GameObject enemyPrefab;
[SerializeField] private float spawnInterval = 5f;
[SerializeField] private List<Transform> PointsSpawn = new List<Transform>();
[SerializeField] private GameObject[] Sheeps;
private void Start()
{
StartCoroutine(TimerSpawn());
}
void Update()
{
for (int i = 0; i < Sheeps.Length; i++)
{
if (Sheeps[i] == null)
{
PointsSpawn.RemoveAt(i);
}
}
}
void Spawn()
{
Instantiate(enemyPrefab, PointsSpawn[Random.Range(0, 4)]);
}
IEnumerator<WaitForSeconds> TimerSpawn()
{
yield return new WaitForSeconds(spawnInterval);
Spawn();
}
}
Код удаляет объект и те которые находятся выше в листе то есть утех объектов у которых индекс больше.
Вот пример я удалил объект с индексом 2 и также удалился объект с индексом 3:
И выводит ошибку:
ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index System.Collections.Generic.List`1[T].RemoveAt (System.Int32 index) (at :0) SpawnerEnemy.Update () (at Assets/Scripts/SpawnerEnemy.cs:23)
Помогите пожалуйста исправить!
