ПРивет можешь немного доработать скрипт что вместе с удалением всех объектов мы еще и сбрасывает значение objectsSpawned. Вот 2 скрипта using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class SpawnPrefabOnClick : MonoBehaviour
{
    public GameObject prefabToSpawn;    // Префаб, который будет создан
    public List<GameObject> objectsToActivate; // Список объектов, которые будут активированы
    public Text objectsRemainingText;    // Текстовое поле для отображения количества оставшихся объектов

    public int objectsSpawned = 0;
    private bool waitToActivate = false;

    void Update()
    {
        // Проверяем, была ли нажата левая кнопка мыши
        if (Input.GetMouseButtonDown(0))
        {
            // Создаем префаб в позиции текущего объекта
            GameObject spawnedObject = Instantiate(prefabToSpawn, transform.position, transform.rotation);
            objectsSpawned++;

            // Обновляем текстовое поле с количеством оставшихся объектов
            objectsRemainingText.text = "Objects Remaining: " + (10 - objectsSpawned);

            // Если создано 10 объектов, ожидаем 5 секунд и активируем определенный объект
            if (objectsSpawned == 10)
            {
                StartCoroutine(ActivateObjectsAfterDelay());
            }

            // Получаем все Renderer компоненты объекта
            Renderer[] renderers = spawnedObject.GetComponentsInChildren<Renderer>();
            if (renderers != null)
            {
                // Перебираем все Renderer компоненты
                foreach (Renderer renderer in renderers)
                {
                    for (int i = 0; i < renderer.materials.Length; i++)
                    {
                        // Получаем текущий цвет материала
                        Color currentColor = renderer.materials[i].color;

                        // Конвертируем RGB-цвет в HSV
                        Color.RGBToHSV(currentColor, out float h, out float s, out float v);

                        // Генерируем случайный оттенок (Hue)
                        float randomHue = Random.value;

                        // Конвертируем HSV обратно в RGB, заменяя только компонент оттенка
                        Color newColor = Color.HSVToRGB(randomHue, s, v);

                        // Применяем новый цвет к материалу
                        renderer.materials[i].color = newColor;
                    }
                }
            }
        }
    }

    private IEnumerator ActivateObjectsAfterDelay()
    {
        waitToActivate = true;
        yield return new WaitForSeconds(5f);
        foreach (GameObject obj in objectsToActivate)
        {
            obj.SetActive(true);
        }
    }
}using UnityEngine;

public class TriggerHandler : MonoBehaviour
{

    private void OnTriggerExit(Collider other)
    {
        // Проверяем, если вышедший объект имеет метку (tag) “Cube”
        if (other.CompareTag("Cube"))
        {
            // Удаляем все объекты с меткой (tag) “Cube” в сцене
            GameObject[] cubes = GameObject.FindGameObjectsWithTag("Cube");
            foreach (GameObject cube in cubes)
            {
                Destroy(cube);
            }
        }
    }
}