Смена сцен в главном меню долго осуществляется, что делать?
Смена сцен, к примеру с главного меню на сцену настроек, очень долго осуществляется, примерно 1-1.5 сек, это очень долго для игры мобильного телефона. Что можно сделать?
Profiler показывает что Loading.UpdatePreloading имеет 14.4 кб и выполняется в 93.65 ms
Наверное я плохо написал скрипт на смену сцены. Я создал GameObject и прикрепил следующий Script:
public void OpenSettings () {
Application.LoadLevel ("Settings");
}
public void OpenShop () {
Application.LoadLevel ("Shop");
}
public void Close () {
Application.LoadLevel ("MainMenu");
А этот GameObject со скриптом прикрепил к Button в меню On click.
Может этот метод примитивен, помогите понять в чем дело.
public void OpenSelectRoom () {
SceneManager.LoadScene ("SelectRoom"); }
public void OpenSettings () {
SceneManager.LoadScene ("Settings"); }
public void OpenShop () {
SceneManager.LoadScene ("Shop"); }
Но проблема осталась.
Может потому что я использую GUI кнопки?
Я видел некоторые просто бросали спрайты в сцену, обводили коллайдером и скриптовали но в гаидах я читал что нужно избегать команд OnMouseDown и OnMouseUP
EugM: Скорость загрузки сцены зависит от её наполнения, если у вас кроме Canvas с кнопками там ничего нет, то должно грузиться быстро. Грузиться медленно в таком случае может только, если вы используете огромные спрайты или у вас шрифты тяжёлые. Я бы ещё провёл эксперимент с загрузкой сцены настроек из пустой сцены, есть вероятность, что тяжеловесность исходной сцены тоже влияет на время загрузки.
Даниил Басманов: Думаю и за огромных спрайтов. Бэкграунды имеют разрешение 1440 на 2560. Возможно как то это оптимизировать. Можете пожалуйста что то посоветовать ?
EugM: Для начала нужно убедиться, что дело в большом фоне, попробуйте выкинуть его и замерьте скорость загрузки. Может быть дело не в картинке, а в тяжёлом Awake какого-то вашего плагина, который лезет в нативный код. Касательно формата картинки, значение имеет компрессия, остальное не очень важно.