private List <GameObject> InvertSelection(List <GameObject> selectedGameObjects)
        {
            List <GameObject> invertedSelection = new List <GameObject>();

            foreach (GameObject obj in UtilitiesToolExtensions.GetAllGameObjects())
            {
                if (!selectedGameObjects.Contains(obj))
                {
                    invertedSelection.Add(obj);
                }
            }
            return(invertedSelection);
        }
        public List <GameObject> Select()
        {
            List <GameObject> filteredGameObjects = new List <GameObject>();

            GameObject[] allGameObjects = UtilitiesToolExtensions.GetAllGameObjects();


            foreach (var go in allGameObjects)
            {
                if (_isPrefab)
                {
                    PrefabAssetType assetType = PrefabUtility.GetPrefabAssetType(go);
                    if (assetType == PrefabAssetType.Regular)
                    {
                        filteredGameObjects.Add(go);
                        continue;
                    }
                }

                if (_isStatic)
                {
                    if (go.isStatic == true)
                    {
                        filteredGameObjects.Add(go);
                        continue;
                    }
                }

                if (_isActive)
                {
                    if (go.activeInHierarchy == true)
                    {
                        filteredGameObjects.Add(go);

                        continue;
                    }
                }

                switch (_objecttypesIndex)
                {
                case 0:
                    break;

                case 1:
                    CheckTypeAndAddToList <MeshRenderer>(go, filteredGameObjects);
                    break;

                case 2:
                    CheckTypeAndAddToList <Light>(go, filteredGameObjects);
                    break;

                case 3:
                    CheckTypeAndAddToList <Terrain>(go, filteredGameObjects);
                    break;

                case 4:
                    CheckTypeAndAddToList <Camera>(go, filteredGameObjects);
                    break;

                case 5:
                    CheckTypeAndAddToList <AudioSource>(go, filteredGameObjects);
                    break;

                case 6:
                    CheckTypeAndAddToList <ParticleSystem>(go, filteredGameObjects);
                    break;

                case 7:
                    if (CheckEmptyGameObject(go))
                    {
                        filteredGameObjects.Add(go);
                    }
                    break;

                case 8:
                    if (CheckEmptyGameObject(go) && go.transform.childCount == 0)
                    {
                        filteredGameObjects.Add(go);
                    }
                    break;

                case 9:
                    CheckTypeAndAddToList <ReflectionProbe>(go, filteredGameObjects);
                    break;

                case 10:
                    CheckTypeAndAddToList <WindZone>(go, filteredGameObjects);
                    break;

                default:
                    break;
                }
            }
            return(filteredGameObjects);
        }