Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Объявление

public static void LoadScene(int sceneBuildIndex, SceneManagement.LoadSceneMode mode = LoadSceneMode.Single);

public static void LoadScene(string sceneName, SceneManagement.LoadSceneMode mode = LoadSceneMode.Single);

Параметры

sceneName Имя или путь загружаемой сцены.
sceneBuildIndex Индекс сцены в настройках сборки для загрузки.
mode Позволяет указать, следует ли загружать сцену аддитивно. Подробнее об этих параметрах см. в разделе LoadSceneMode.

Описание

Загружает сцену по ее имени или индексу в настройках сборки.

Примечание. В большинстве случаев, чтобы избежать пауз или сбоев производительности при загрузке, следует использовать асинхронную версию этой команды: LoadSceneAsync. .

При использовании SceneManager.LoadScene сцена загружается в следующем кадре, то есть загружается не сразу. Такое полуасинхронное поведение может привести к задержке кадров и сбить с толку, поскольку загрузка не завершается сразу.

Поскольку загрузка должна завершиться в следующем визуализируемом кадре, вызов SceneManager.LoadScene приводит к принудительному завершению всех предыдущих AsyncOperations, даже если AsyncOperation.allowSceneActivation имеет значение false. Чтобы избежать этого, используйте вместо этого LoadSceneAsync.

Указанное sceneName может быть либо только именем сцены, без расширения .unity, либо путем, как показано на окно BuildSettings все еще без расширения .unity. Если указано только имя сцены, будет загружена первая совпадающая сцена в списке. Если у вас есть несколько сцен с одинаковым именем, но разными путями, вы должны использовать полный путь.

Обратите внимание, что sceneName нечувствителен к регистру, за исключением случаев, когда вы загружаете сцену из AssetBundle.

Информацию об открытии сцен в редакторе см. в разделе EditorSceneManager.OpenScene. SceneA может дополнительно загружать SceneB несколько раз. Обычное имя используется для каждой загруженной сцены. Если SceneA загружает SceneB десять раз, каждая SceneB будет иметь одно и то же имя. Поиск конкретной добавленной сцены невозможен.

using UnityEngine; using UnityEngine.SceneManagement; public class ExampleClass : MonoBehaviour { void Start() { // Only specifying the sceneName or sceneBuildIndex will load the Scene with the Single mode SceneManager.LoadScene("OtherSceneName", LoadSceneMode.Additive); } }
// Загружаем пакет ресурсов, содержащий сцены. // Когда пользователь нажимает кнопку, открывается первая Scene в наборе ресурсов. // загружается и заменяет текущую Scene. using UnityEngine; using UnityEngine.SceneManagement; public class LoadScene : MonoBehaviour { private AssetBundle myLoadedAssetBundle; private string[] scenePaths; // Use this for initialization void Start() { myLoadedAssetBundle = AssetBundle.LoadFromFile("Assets/AssetBundles/scenes"); scenePaths = myLoadedAssetBundle.GetAllScenePaths(); } void OnGUI() { if (GUI.Button(new Rect(10, 10, 100, 30), "Change Scene")) { Debug.Log("Scene2 loading: " + scenePaths[0]); SceneManager.LoadScene(scenePaths[0], LoadSceneMode.Single); } } }

В следующих двух примерах сценария показано, как LoadScene может загружать сцены из настроек сборки. LoadSceneA использует имя сцены для загрузки. LoadSceneB использует номер загружаемой сцены. Скрипты работают вместе с файлом LoadSceneA

// СценаА. // SceneA получает имя сцены, которое // загружаем SceneB из Settings сборки using UnityEngine; using UnityEngine.SceneManagement; public class LoadScenesA : MonoBehaviour { void Start() { Debug.Log("LoadSceneA"); } public void LoadA(string scenename) { Debug.Log("sceneName to load: " + scenename); SceneManager.LoadScene(scenename); } }

LoadSceneB файл.

// СценаБ. // SceneB получает sceneBuildIndex, равный 0, что // загружаем SceneA из Settings сборки using UnityEngine; using UnityEngine.SceneManagement; public class LoadScenesB : MonoBehaviour { void Start() { Debug.Log("LoadSceneB"); } public void LoadB(int sceneANumber) { Debug.Log("sceneBuildIndex to load: " + sceneANumber); SceneManager.LoadScene(sceneANumber); } }

Объявление

public static SceneManagement.Scene LoadScene(int sceneBuildIndex, SceneManagement.LoadSceneParameters parameters);

public static SceneManagement.Scene LoadScene(string sceneName, SceneManagement.LoadSceneParameters parameters);

Параметры

sceneName Имя или путь загружаемой сцены.
sceneBuildIndex Индекс сцены в настройках сборки для загрузки.
parameters Различные параметры, используемые для загрузки сцены.

Возвращает

Scene Дескриптор загружаемой сцены.

Описание

Загружает сцену по ее имени или индексу в настройках сборки.

Пример использования двух сцен с именами Scene1 и Scene2. ExampleScript1.cs предназначен для scene1, а ExampleScript2.cs — для scene2.

using UnityEngine; using UnityEngine.SceneManagement; // Это сцена1. Он загружает 3 копии сцены2. // Каждая копия имеет одно и то же имя. public class ExampleScript1 : MonoBehaviour { private Scene scene; private void Start() { var parameters = new LoadSceneParameters(LoadSceneMode.Additive); scene = SceneManager.LoadScene("scene2", parameters); Debug.Log("Load 1 of scene2: " + scene.name); scene = SceneManager.LoadScene("scene2", parameters); Debug.Log("Load 2 of scene2: " + scene.name); scene = SceneManager.LoadScene("scene2", parameters); Debug.Log("Load 3 of scene2: " + scene.name); } }

Scene2:

using UnityEngine; // создаем случайно размещенный куб public class ExampleScript2 : MonoBehaviour { private void Start() { GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube); cube.transform.position = new Vector3(Random.Range(-5.0f, 5.0f), 0.0f, Random.Range(-5.0f, 5.0f)); } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3