Вместо добавления всех сцен и последующего удаления, лучшим подходом было бы, чтобы перед добавлением сцены в массив вы могли проверить, совпадает ли индекс:
if(i != SceneManager.GetActiveScene().buildIndex)
{
scenes[i] = System.IO.Path.GetFileNameWithoutExtension(SceneUtility.GetScenePathByBuildIndex(i));
}
Но теперь есть небольшой Если для элемента массива этого индекса задано значение NULL, вы можете просто проверить, является ли элемент NULL, и не создавать его экземпляр, но тогда мы можем получить более сложный код, который должен быть ...
Вместо с массивом все будет проще, используя List , в итоге List похож на массивы, но вам не нужно указывать размер.
List<string> scenes = new List<string>();
for (int i = 0; i < sceneCount; i++)
{
if(i != SceneManager.GetActiveScene().buildIndex)
{
scenes.Add(System.IO.Path.GetFileNameWithoutExtension(SceneUtility.GetScenePathByBuildIndex(i)));
}
}
Наконец, вы хотите знать, все ли все в порядке, поэтому мы получаем доступ к каждому элементу списка:
//Acces each element of the list
for(int i = 0; i < scenes.Count; i++)
{
Debug.Log(scenes[i]);
}
Подробнее о классе списка можно прочитать здесь .