Нужно сделать СЦЕНУ для ЗАГРУЗКИ СЦЕН в unity

Короче говоря, нужно сделать так : есть сцена Menu, на ней ест кнопка, которая запускает функцию, которая в свою очередь грузит "легкую" сцену LoadingScreen с индикатором (Текстовый объект), который будет отображать прогресс загрузки более сложной сцены (Game). Вопрос в том как передать название сцены со сцены Menu на LoadingScreen, которая начнет грузить эту самую сцену.


Ответы (1 шт):

Автор решения: Арман

Ответ

Сохраняйте имя сцены вот так -

PlayerPrefs.SetString("SaveKey", sceneName);

Загружайте так -

SceneManager.LoadScene(PlayerPrefs.GetString("SaveKey"));

Решение получше

Я бы не посоветовал вам создать для загрузки отдельную сцену. Вместо этого используйте отдельный поток.

Код

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

public class Loading : MonoBehaviour
{
    public int sceneId;
    public Image progress;

    private void OnEnable()
    {
        StartCoroutine(loadLevel());
    }

    IEnumerator loadLevel()
    {
        AsyncOperation operation = SceneManager.LoadSceneAsync(sceneId);
        progress.fillAmount = operation.progress;
        yield return null;
    }
}

Окно Loading

В Иерархии

В инспекторе

Работоспособность

Дополнительно

Всё что вам надо это вставить все сцены в Scenes In Build

И во время загрузки в скрипте показать какую сцену собирайтесь загрузить. В данном случае это сцена с индексом 1.

→ Ссылка