SceneManagerAPI
класс в UnityEngine.SceneManagement
Выполнено в:UnityEngine.CoreModule
Описание
Предоставляет механизм переопределения отдельных SceneManager методы.
Унаследуйтесь от этого базового класса, чтобы предоставить альтернативные реализации поведения C# для конкретных SceneManager методы.
Предупреждение: Класс SceneManagerAPI рассчитан на опытных пользователей. Одновременно может быть активна только одна реализация (через SceneManagerAPI.overrideAPI), так что его использование может вступить в конфликт с любым другим кодом, пытающимся использовать тот же механизм.
Пример определяет, когда загрузка сцены производится по индексу, и регистрирует предупреждение о переключении на загрузку по пути сцены.
using UnityEngine; using Debug = UnityEngine.Debug; using UnityEngine.SceneManagement;
public class SceneIndexLogger : SceneManagerAPI { [RuntimeInitializeOnLoadMethod] static void OnRuntimeMethodLoad() { SceneManagerAPI.overrideAPI = new SceneIndexLogger(); }
protected override int GetNumScenesInBuildSettings() { Debug.LogWarning("SceneManager.GetNumScenesInBuildSettings() called, please load scenes by path to avoid issues when scenes are reordered."); return base.GetNumScenesInBuildSettings(); }
protected override Scene GetSceneByBuildIndex(int buildIndex) { Debug.Log($"SceneManager.GetSceneByBuildIndex(buildIndex = {buildIndex}) called, please load scenes by path to avoid issues when scenes are reordered."); return base.GetSceneByBuildIndex(buildIndex); } }
Статические свойства
| Свойство | Описание |
|---|---|
| overrideAPI | Конкретный экземпляр SceneManagerAPI, используемый для обработки переопределенных методов SceneManager. |
Защищенные методы
| Метод | Описание |
|---|---|
| GetNumScenesInBuildSettings | Переопределение для настройки поведения функции SceneManager.sceneCountInBuildSettings. |
| GetSceneByBuildIndex | Переопределение для настройки поведения функции SceneManager.GetSceneByBuildIndex. |
| LoadFirstScene | Переопределение для настройки поведения загрузки первого Scene в сборке плеера stub. |
| LoadSceneAsyncByNameOrIndex | Переопределение для настройки поведения функций SceneManager.LoadScene и SceneManager.LoadSceneAsync. |
| UnloadSceneAsyncByNameOrIndex | Переопределение для настройки поведения функции SceneManager.UnloadSceneAsync. |