Как удалить объект в 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:

Это пример того что если удалить объект 2

И выводит ошибку:

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)

Помогите пожалуйста исправить!


Ответы (0 шт):