Unity 6.3
0 онлайн 13 гостей 3 в системе
Вход

SceneManager.LoadSceneAsync

Declaration

public static AsyncOperation LoadSceneAsync(string sceneName, SceneManagement.LoadSceneMode mode = LoadSceneMode.Single);
public static AsyncOperation LoadSceneAsync(int sceneBuildIndex, SceneManagement.LoadSceneMode mode = LoadSceneMode.Single);
public static AsyncOperation LoadSceneAsync(string sceneName, SceneManagement.LoadSceneParameters parameters);
public static AsyncOperation LoadSceneAsync(int sceneBuildIndex, SceneManagement.LoadSceneParameters parameters);

Параметры

Параметр Описание
sceneName Имя или путь файла Scene для загрузки.
sceneBuildIndex Индекс Scene в настройках сборки для загрузки.
режим Если LoadSceneMode.Single, то все текущие Сцены будут разгружены перед загрузкой.
параметры Структура, которая собирает различные параметры в одном месте, кроме имени и индекса.

Возвращаемое значение

AsyncOperation Используйте AsyncOperation, чтобы определить, завершена ли операция.

Описание

Загружает Scene асинхронно в фоновом режиме.

Вы можете указать полный путь Scene, путь, показанный в окне Настройки сборки, или только имя Scene. Если вы указываете только имя Scene, Unity загружает первый Scene в соответствующем списке. Если у вас есть несколько сцен с одинаковым именем, но разными путями, вы должны использовать полный путь Scene в Настройках сборки.

Примеры поддерживаемых форматов:
"Scene1"
"Scenes/Scene1"
"Scenes/Others/Scene1"
"Assets/scenes/others/scene1.unity"

Примечание: ввод имени Scene не зависит от регистра.
Если вы вызываете этот метод с неверным sceneName или sceneBuildIndex, Unity вызывает исключение.

Примечание: Имя загружаемого Scene может не учитывать регистр.

Если загружена сцена в одном режиме, Unity автоматически вызывает Resources.UnloadUnusedAssets.

using System.Collections;
using UnityEngine;
using UnityEngine.SceneManagement;

public class Example : MonoBehaviour { void Update() { // Press the space key to start coroutine if (Input.GetKeyDown(KeyCode.Space)) { // Use a coroutine to load the Scene in the background StartCoroutine(LoadYourAsyncScene()); } }

IEnumerator LoadYourAsyncScene() { // The Application loads the Scene in the background as the current Scene runs. // This is particularly good for creating loading screens. // You could also load the Scene by using sceneBuildIndex. In this case Scene2 has // a sceneBuildIndex of 1 as shown in Build Settings.

AsyncOperation asyncLoad = SceneManager.LoadSceneAsync("Scene2");

// Wait until the asynchronous scene fully loads while (!asyncLoad.isDone) { yield return null; } } }