Android. При старте показываю логотип на белом фоне, 2 секунды, а дальше наблюдается белый экран 4 секунды, и запускается сцена, проверял в пустой сцене, запускается сразу после логотипа игра, слышал как-то запускают пустую сцену а дальше загружают сцену игры или асинхронно загружать в момент показа логотипа, подскажите как это сделать лучше, если можно объясните как это реализовать
Ваш вопрос очень общий и смешивает несколько независимых подходов, которые решают разные задачи.
То что описываете вы, обычно, используется для загрузки внешних ресурсов. В случае с мобильными платформами это практически всегда AssetBundle, скачиваемый с удалённого сервера.
В вашем случае проблема в длительности загрузки самой сцены. Предполагаю, что все ресурсы у вас под рукой. Вы не предоставили никакой информации, и сложно оценить насколько сцена валидна. Возможно, она до предела перегружена объектами или использует нехорошие скрипты, тормозящие загрузку.
Но так или иначе, загрузку сцены можно сделать асинхронной. Для этого служит метод SceneManager.LoadSceneAsync
.
По ссылке же находится пример, демонстрирующий корутину с примером использования.
using System.Collections;
using UnityEngine;
using UnityEngine.SceneManagement;
public class Example : MonoBehaviour
{
void Update()
{
//Press the space key to start coroutine
if (Input.GetKey(KeyCode.Space))
{
//Use a coroutine to load the Scene in the background
StartCoroutine(LoadYourAsyncScene());
}
}
IEnumerator LoadYourAsyncScene()
{
// The Application loads the Scene in the background at the same time as the current Scene.
//This is particularly good for creating loading screens. You could also load the Scene by build //number.
AsyncOperation asyncLoad = SceneManager.LoadSceneAsync("Scene2");
//Wait until the last operation fully loads to return anything
while (!asyncLoad.isDone)
{
yield return null;
}
}
}
Экземпляр AsyncOperation
содержит свойство progress
, которое позволяет отражать процедуру загрузки в различных ProgressBar'ах.
Вы можете реализовать любую анимацию или просто крутящуюся картинку на чёрном фоне, которая будет висеть перед глазами игрока до окончания загрузки сцены. Тоже самое касается и прочих асинхронных операций.
Обрати внимание, что ожидание завершения операции while (!asyncLoad.isDone)
должно выполняться итеративно в отдельной корутине, порождённой методом StartCoroutine
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Доброго вечераПрошу помочь разобраться почему следующий код не сохраняет измененные настройки в test
Приветствую ! Столкнулся со следующей проблемой, необходимо иметь возможность загрузки файлов в FileStorage из WebApplication Service с помощью VirtualNetwork...