Удаление префабов в unity3d

введите сюда описание изображенияВсем привет, как мне доработать код для игры в юнити, чтобы удалились префабы, которые находятся друг за другом и одного цвета В копилоте подобный код вывел, но он удаляет либо все префабы, если расстояние между объетами большое, либо не находит совпадений. Заранее спасибо кто откликнется)

using System;
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
 
namespace SortItems.Game_Endless_eque.Scripts
{
    public class DeletePref : MonoBehaviour
    {
        private GameObject[] _prefabs;
        // Массив префабов
 
        void Start()
        {
            _prefabs = GameObject.FindGameObjectsWithTag("Roach");
            if (_prefabs == null)
            {
                Debug.LogError("prefabs is null! Check your scene setup.");
                return;
            }
 
            Array.Sort(_prefabs, (a, b) => a.transform.position.x.CompareTo(b.transform.position.x)); // Сортируем префабы по позиции по оси X
 
            // Перебираем префабы, проверяя их цвет и расстояние между ними
            for (int i = 0; i < _prefabs.Length; i++)
            {
                for (int j = i + 1; j < _prefabs.Length; j++)
                {
                    Color currentColor = _prefabs[i].GetComponent<Renderer>().material.color;
                    float distanceToNextPrefab = Vector3.Distance(_prefabs[i].transform.position, _prefabs[j].transform.position);
 
                    for (int k = j + 1; k < _prefabs.Length; k++)
                    {
                        if (currentColor == _prefabs[j].GetComponent<Renderer>().material.color &&
                            _prefabs[j].GetComponent<Renderer>().material.color ==
                            _prefabs[k].GetComponent<Renderer>().material.color && distanceToNextPrefab <= 20)
                        {
                            Debug.Log($"Найдена комбинация: {_prefabs[i].name}, {_prefabs[j].name},{_prefabs[k].name}");
                            // Удаляем префабы из сцены
                            _prefabs[i].SetActive(false);
                            _prefabs[j].SetActive(false);
                            _prefabs[k].SetActive(false);
                        }
                    }
                }
            }
        }
    }
}

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