Как можно проверить наличие определенной сцены по ее имени в Unity?

Как можно проверить, существует ли сцена по её названию без дополнительной информации о ней?
  • 30 апреля 2024 г. 3:10
Ответы на вопрос 2
Для проверки наличия определенной сцены по ее имени в Unity можно использовать метод SceneManager.GetSceneByName(). Пример кода:

```csharp
using UnityEngine.SceneManagement;

public class SceneChecker : MonoBehaviour
{
    void Start()
    {
        bool sceneExists = SceneManager.GetSceneByName("SceneName").IsValid();
        
        if (sceneExists)
        {
            Debug.Log("Scene with name 'SceneName' exists.");
        }
        else
        {
            Debug.Log("Scene with name 'SceneName' does not exist.");
        }
    }
}
```

Данный код проверяет наличие сцены с именем "SceneName" и выводит соответствующее сообщение в зависимости от результата проверки.

Если же требуется проверить, существует ли сцена по ее названию без дополнительной информации о ней, то можно воспользоваться перебором всех сцен и сравнением их имен. Пример кода:

```csharp
using UnityEngine.SceneManagement;

public class SceneChecker : MonoBehaviour
{
    void Start()
    {
        string sceneNameToCheck = "SceneName";

        bool sceneExists = false;

        for (int i = 0; i < SceneManager.sceneCount; i++)
        {
            if (SceneManager.GetSceneAt(i).name == sceneNameToCheck)
            {
                sceneExists = true;
                break;
            }
        }

        if (sceneExists)
        {
            Debug.Log("Scene with name '" + sceneNameToCheck + "' exists.");
        }
        else
        {
            Debug.Log("Scene with name '" + sceneNameToCheck + "' does not exist.");
        }
    }
}
```

Этот код перебирает все сцены в проекте и сравнивает их имена с заданным именем сцены для проверки наличия.
// Название сцены, которую нужно проверить
string sceneName = "Название сцены";

// Получаем объект Scene по названию
Scene scene = SceneManager.GetSceneByName(sceneName);

// Проверяем, существует ли сцена
if (scene.IsValid())
{
    Debug.Log("Сцена с названием " + sceneName + " существует.");
}
else
{
    Debug.Log("Сцена с названием " + sceneName + " не существует.");
}
Похожие вопросы