Загрузочный экран и смена сцен в Unity 3D
HTML-код
- Опубликовано: 13 июн 2020
- Как сделать красивое, правильное и быстрое переключение сцен в Unity 3D. С анимацией, полоской и текстом загрузки, и без фриза всей игры. Я расскажу про то зачем и почему вообще в Юнити используются сцены, а потом мы сделаем удобный переключатель сцен с полоской загрузки, научимся делать loading screen'ы с любой анимацией, ну и конечно параллельно покажу вам несколько полезных кнопок, галочек, и хоткеев Unity
Ссылка на скрипт - gist.github.com/Glavak/5eb736...
Patreon канала - / emeraldpowder
Наш Discord - / discord
На этом канале регулярно появляются новые видео, которые позволят тебе научиться создавать игры, или подарят новые идеи и вдохновение, если ты уже умеешь. Подписывайся!
Остались какие-то вопросы, пожелания, или идеи для других видео? Смело пиши в комментарии под видео
У вас талант преподавателя. Вы так филигранно балансируете между "водой" и информацией.
Спасибо!
Ты заслуживаешь больше подписчиков, спасибо за полезные видео
+++++++++
Охаё! на связи Rimuru Dev. Если вы повторили точ в точ за автором и у вас ничего не получилось. Сделайте следующее () =>
Там где вы жмякаете на кнопку перехода на новую сцену, вместо SceneManager.LoadScene(sceneName); воспользуйтесь SceneTransition.SwitchToScene(sceneName);
sceneName - это название вашей сцены на которую вы хотите перейти.
Пример: “Level_0” вот так SceneTransition.SwitchToScene(“Level_0”);
Проверьте в File=>Build Settings установлены ли ваши сцены.
*Данный текст был написан для новичков которые не смогли осилить данный гайд. Надеюсь спас хотя бы пару горящих пуканов интернов/джунов)
Если у вас Андройд, то ожидайте это =>
При загрузке большой сцены на слабых устройствах , с вероятностью 99,9% будет вылетать приложение из-за большой потребности оперативной памяти.
Нужно разделять загрузку сцены на этапы.
Разрабатывайте игры с умом ❤
Обожаю смотреть тебя, самые лучшие уроки :)
Вы бы знали, как этот урок вовремя))!Спасибо!!!
Отличная подача и полезные видео, спасибо за труды!👍
Супер! Алгоритм ютуба знает, что мне надо.
Как всегда великолепно, большое спасибо!
Интересные темы затрагиваешь из ролика в ролик. Потом как-нибудь всё посмотрю)
Когда узнал, что прогресс бары фейковые: 😭
Ну нет, можно сделать и настоящий, но там гемора больше
@@TeamSLywnow Ну помоги
@@SUBzOnFire brackeys
Спасибо за материал, очень интересно!
Крутые видосы, ничего лишнего. Спасибо!!!
Для тех, у кого не перетаскивается Text Loading Percent.
Используйте библиотеку using TMPro;
далее замените public Text LoadingPercentage; на public TMP_Text LoadingPercentage;
Надеюсь помог, желаю всем удачи!
Удачи тебе, отличные уроки👍👍👍
Спасибо автор, я честно две недели думал как это сделать. Как-то на костылях тогда сделал и оставил! Через месяц смотрю твоё видео и офигел у меня половина всего было почти наоборот.
Спасибо за видос , щас буду смотреть
Аниматор и неотключенный канвас будут обновляться каждый кадр, даже если они ничего не воспроизводят. Для анимации UI есть паки вроде UITween, все вещи вроде смены прозрачности или движения влево-вправо в них можно спокойно сделать.
Поправьте если я не прав, но каждый объект на сцене обновляется каждый кадр даже если ничего не делает? Так в чем исключительность аниматора?
@@maxalm3318 отключенные компоненты/целые объекты, как правило, не обновляются. Фишка аниматора в том, что даже при отсутствии анимаций он будет дергать отрисовку. А если мы говорим о канвасе размером с экран, то каждый кадр будет перерисовываться пустой экран, зачем?
Анимации как правило используются при появлении/исчезании элементов, а кроме этих моментов сам элемент большую часть времени статичен, тогда выгоднее использовать не аниматор, а какие-то штуки вроде UITween, которые могут анимировать объект эти пару секунд и потом не забивать видюху/проц ненужной работой
Отличный канал,развития и подписоты) Но хотелось бы спросить,будет ли в обозримом будущем туториал или краткий гайд,для тех кто только начал изучение юнити и C+?
Спасибо) оч. полезное видео!
Видео: 3 минуты назад
Комменты: классное видео
Просто здесь автор фигни не снимает, так что мы заранее знаем, что классное))
@@SHILY-PROJECT это да)
"которое принимает число от единицы до одного" :) 14:05
так, и че?
@@tenko4647 ну он хотел сказать от нуля до одного.
Спасибо большое автору !!!
Спасибо за урок! Планируешь сделать видео по ECS/Job System в Unity?
Сам был бы рад об ECS посмотреть. Но система, как говорит сама Unity и ребята проводившие конференцию, говорили, что система ещё немного сырая. Да и пакет ещё в preview версии.
А Job System уже достаточно полноценная система. Но думаю лучше сделать видео сразу по обоим системам сразу, когда обе будут допилены
@@watermelon0guy а в чем функция job system?
12:44 вооооооу, не знал что там есть такая функция. Спасибо
Пожалуйста, всегда стараюсь побольше фичей которые сам знаю использовать в видео и показывать
Автор Видео, привет!). Подскажи, а не проще переход сцены, в частности как у тебя, сделать через способ Таймлайн? В скрипте меньше записей надо делать и манипуляции меньше чем с Аниматором. Интересно твоё мнение:). Метод из видео используешь потому, что так привык или по другим причинам?
Наааайс! Спасибо большое!
спасибо, очень полезное видео)
Почти 2 ночи. завтра рано вставать. Я ничуть не геймдевер... И смотрю этот видосик
Спасибо за хорошие ночи
Тоже считаю хранить файлы не по типу, а по сущности профитнее. Спасибо за уроки! Годно вещаешь)
Спорное утверждение. Допустим, что сначала ты делаешь сущность игрока и забрасываешь туда скрипты. И есть сущность врага, где другие скрипты, которые присущи врагам. А потом тебе вдруг пришло в голову снабдить врагов какой-то функцией, которая уже отлично себя зарекомендовала с игроком. Что ты будешь делать? Дублировать скрипт? Или создашь особый раздел "игрок и враги"? А через месяц ты вдруг решил дополнить игру союзниками, которые не являются игроком и не являются врагами. Дальше как? Ещё один дубль скриптов? Или ещё набор невнятных папок "игрок и союзники", "союзники и враги", "игрок, союзники и враги"... В общем, тупиковое это направление.
@@-unity- я делаю папку существа. В ней все общие скрипты и папки с файлами конкретно игрока, моба Васи, мода феди и тд. Если в какой то момент мне понравилась фича например моба Васи, я ее код переношу в общие скрипты.
Тут дело вкуса, но по типу можно и так отстортировать фильтрами (спрайты/меши), так что такие папки по сути дублируют функционал. А по сущностям - хотя бы примерно знаешь где начинать искать, например надо поменять анимацию врага, не вспоминаешь как она сделана, через скрипт или аниматор, а сразу идёшь в папку врага. Хотя по сути можно так же ввести в поиск "Enemy" и получишь всё связанное с врагом, так что тут тоже некоторое дублирование
@@EmeraldPowder я просто ленивая задница что то искать. Я лучше изначально запарюсь удобно покласть файлики)
В игре Superliminal, как по мне, очень интересные экраны загрузки)
еще как вариант для загрузки сцены можно создать Task, предварительно загрузить небольшой процент бара для видимости процесса и при загрузке сцены await Task.. передавать заполнение бара лерпом\твином до 1
Столкнулся с проблемой зависания LoadSceneAsync на android, так как автор видео меня очень заинтересовал подобным способом загрузки, отказываться от него я не хотел. Пришлось погуглить, что бы избежать проблемы зависания. Немного доработал код согласно официальной документации и проблема решилась. Вот ссылка для тех кто с этим столкнулся. gist.github.com/devskgames/811475dea5f37d020b785fbd9a7d76f3
Спасибо автору за изысканные решения, ваши видео очень помогают в разработке!
Хорошее видео. Но хочется сделать замечание. Singleton - это не совсем то что было на экране, либо я не совсем понял мысль. Паттерн синглтон - паттерн при котором имеется только ОДИН инстанс класса. Реализуется он как раз похожим способом что ты сделал. Есть статическое приватное поле _instance. Есть статическое публичное свойство Instance => _instance ?? (_instance = new Class()) (если инстанс существует, верни его, если нет, создай новый, сохрани его, и верни) и делается приватный конструктор дабы нельзя было порождать новые инстансы из вне. Только использовать конструкцию Class.Instance.
Привет, можешь, пожалуйста, сделать видео о том, как можно с помощью некого инструмента (например кирки или бура, неважно), изменять геометрию террейна?
Спасибо за хороший туториал
Вышло 4 минут назад))
Приятно когда в тебя верят уже заранее)
Можешь-ли ты сделать видеоурок по теме скриптов, выполняющихся в редакторе. Я знаю, что такое есть, но не знаю, как это реализуется. Для примера, можно показать тайл из урока по процедурной генерации. А именно, сделать какой-то скрипт, который будет на тайле, который, по нажатию кнопки в инспекторе, будет заранее просчитывать боковые стенки и записывать информацию оттуда в массив, находящийся в скрипте. Прям больно становится, когда вижу, сколько расчетов происходит при запуске этой сцены. Для того, чтобы наполнить урок больше, можно рассказать ещё про какие-то способы применения и особенности этого метода. Заранее спасибо
А что если пишет: не содержит определения для fillAmout и не удалось найти доступный метод расширения fillAmout, принимающий первый аргумент типа AsyncOperation. Вам не хватает директивы using или ссылки на сборку?
Настоящий бриллиант среди русскоязычных каналов по Unity! Только с синглтоном, имхо, слегка небрежно получилось. Наверное, лучше заводить в awake, и делать до конца, с проверкой и dontdestroy, чтоб служить примером для адептов) Спасибо за очередной туториал!
Спасибо!
В Awake задавать instance да, это было бы правильнее. С dontdestroy тут бы не зашло, так как он в обычном канвасе у меня лежит, но если сделать префаб вместе с канвасом то это хорошая идея, тогда можно было бы не таскать его в каждую сцену
Насчёт отображения fillAmount: надо progress / 0.9f просто так 100% не будут отображены.
UPD: даже на скорости 0.25х нет 100%
Привет, я не могу найти инфу о том, какие требование с технической точки зрения при попытки портирования игры с ПК на android, а также какие есть нюансы с изображениями? HELP!
Было бы очень здорово увидеть гайд по созданию клона Subway Surfers(управление свайпами по линиям, движение мира на игрока(а не игрока по миру), генерация препятствий и т.д)
Такого не планируется?
Я разрабатывал свою игру около года, несложная аркада для андройда. Сейчас у нее всего по паре новых игроков в день (чего тоже добиться было трудновато). Мне хотелось бы узнать, каким образом можно продвинуть свое приложение? Возможно есть какие то тонкости настройки в гугл плей консоль? Или как заинтересовать издателя? Каких издателей посоветуете?
Есть какой-то скрипт на кнопке? Ты добавил префаб в сцену меню, но никак не привязал работу скрипта к кнопке. Кнопка телепатически воспроизводит скрипт?
Отличное видео, спасибо за труд, было бы интересно посмотреть о переносе данных из сцены в сцену. Вроде перемещения игрока по комнатам лабиринта, если уже есть что то подобное на канале, поделитесь ссылкой плз. :3
Если переменные, то просто после public делаешь static и там дальше тип м название. Потом из другого скрипта или сцены вместо обычного названия переменной пишешь имя скрипта и через точку название переменной. Всё
А можно видео на тему публикации приложений в app store. Статьей много и все говорят об разном и не всегда получается с первого раза выложить.
Все эти сертификаты, вечно забываешь, какой куда сувать и какой нужно создать.
Буду благодарен за этот материал.
Помогите, загрузка уровня через главное меню проходит успешно, но когда загружаю главное меню с уровня, то он загружается, почему-то, не корректно.
Вместо меню черный экран.
Если у вас при попытке перехода игра застрявает на чёрном экране, проверьте, *все ли нужные вам сцены включены в билд!* Я дважды всё повторил в точности, убрал все лишние анимации (и свои, и автора) даже, чтобы остался только рабочий скелет, но у меня была вот такая вот проблема.
А ещё, проверьте, не перепутаны ли у вас анимации выключения и включения. На всякий. А то неприятно будет, поверьте.
Здравствуйте, сделал по видео ролику экран загрузки, но использую для красивой анимации перехода в настройки, суть в том что если зайти на уровень, выйти в меню и зайти в настройки то сама игра зависает, то есть анимация не запускается, но в юнити написано что сцена грузится и так может до бесконечности, но если изначально зайти в настройки то все хорошо. Возможно есть предположения с чем это может быть связано?
Спасибо за урок, не могли бы вы создать видео на тему "бесшовный открытый мир на unity3d"?🙏
Ты что Майнкрафт хочешь создать?
А была бы необходимость создавать билд каждый раз, если по окончании загрузки просто добавить "Нажмите клавишу, чтоб завершить загрузку"?)
Ну типа там есть allowSceneActivation, и его можно ставить на true при нажатии кнопки, или это не сработает, и всё равно надо билд делать?
Ну по идеи после первой загрузки сцены в билде она улетает в оперативку и там чилит, при повторном входе в сцену она быстро её достает из этой оперативки. Могу ошибаться, но вроде так.
По Братски, подскажи, как мне реализовать в онлайн игре на PUN2 и Unity 3D синхронизацию IK очень долго ищу, не смог найти. Пишу тебе потому что у тебя есть курс по PUM2
Такое качество, а так мало подписчиков и лайков. Успехов тебе и спасибо за видео!
65К это не мало скажу честно
Здоров, дружище, не знаю твоего имени, но видео у тебя супер!
Хочу тебе предложить перенять названия для переходов из Андроидной разработки. У нас эти методы помечаются как enterTransition для входа и exitTransition для выхода. Может понравится ¯\_(ツ)_/¯
А можешь впредь делать захват екрана в меньших размерах? На планшете несмотрибельно.
Сделай видос про Unity UI Builder. Тема то свежая.
Отличные уроки, спасибо. Главное, что часто выходят. А можешь записать урок, как настроить визуал код, чтобы методы юнити показывал, я чет пробовал и не вышло ничего.
Держи:
ruclips.net/video/9GsV9TpWtzw/видео.html
@@funnytime4372, попробую. Обнял :)
помогите я сделал точно также но без плавного перехода, и когда сцена загрузилась то у меня какая-то беда со светом, то-есть я уже даже пост процессинг отрубил но свет при переходе на сцену становиться зеленоватым и я это уже на сцене никак не могу пофиксить, и причем если я начну игру прямо с основной сцены то такого бага нету
Не получается создать второе соединение New State. Кнопка Make Transition на второй раз просто отсутствует в списке. Что делать?
Спасибо за видео. Расскажите, как правильно работать с Additive сценами. Особенно интересует, как избавиться от ошибки с несколькими AudioListener одновременно и как грамотно выключить камеру одной сцены и переключить на другую, чтобы получилось бесшовно и без ошибок отсутствия камеры.
Может просто переносить камеру между сценами? И в каждой сцене добавить объект, который в методе старт будет перемещать трансформ камеры по нужным координатам? 🤔 Костыль, конечно, но думаю поможет.
С какой целью Вы хотите использовать additive? Переходы между камерами лучше делать в Cinemachine. Сами камеры и AudioListener при этом всегда держать в основной сцене или в отдельной сцене, которую держим постоянно загруженной.
@@ilyanazarov7001 Схема была такая: 1. Сцена с главным меню (Камера, UI, основные менеджеры приложения (реклама, ачивки и т.п.) 2. Сцена с персонажем и уровнем (3D камера, контроллер персонажа и т.п.). Сцену 2 загружал аддитивно, чтобы работали менеджеры приложения, но столкнулся с ошибками для 2 камер. Не получилось отключить одну и сразу же включить другую, не получив ошибку с AudioListener. Правда, я переключал сцену в корутине, дожидаясь ее полной загрузки. В принципе, ошибка эта не страшна и всего 1 раз выходит. Но оказалось, что в webGL билде она вешает приложение.
Не очень понял, как Юнити проверяет используемость ресурсов? если они могут загружаться динамически из Resources.Load по имени?
Самый интересный экран загрузки, на мой взгляд, какой-нибудь интерактив, ну это для долгих загрузок - первых запусков, обнов и тд.
В БДМ, например, flappy bird была и потом ещё мини-бонусы в игре дали)
Да, flappy bird точно можно вставить. Но вообще когда вижу такое в играх задумываюсь что может им стоило подумать как ускорить эту загрузку, а не развлекать игрока)
Привет, спасибо, можешь сделать перенос данных между сценами, переносить геймобжекты, стринги,инты .
Даже в видео на 10:19 то, что мы, большие дяди, называем синглтоном 😂
То есть для начала советую создать какой-то класс GameManager, где будет статическое поле Instance.
В методе Start напиши:
if(Instance == null) { Instance = this; DontDestroyOnLoad(gameObject); }
else GameObject.Destroy(gameObject);
Кинешь этот скрипт на объект на первой сцене, при переходе на другую он не будет уничтожаться.
Теперь в нем ты можешь объявлять другие скрипты и обращаться к ним будешь так: GameManager.Instance.Имя_скрипта
@@kawaikami Синглтоны хорошо использовать только в совсем мелких проектах. Несколько таких менеджеров, и уже начнется боль. Вот шикарная презентация, как люди изящно решают эту и другие задачи с помощью Scriptable Objects: ruclips.net/video/raQ3iHhE_Kk/видео.html
@@kawaikami Господи 😍😍😍пупсик я тебе готов дать, спасибо этот код мне как раз нужен 😍❤️спасибооооо.
Пхахаха, рад что помог кому-то. В архитектуре, которую использую я синглтон всего один. Это как точка входа в приложения, в нем уже менеджеры, в менеджерах контроллеры и тд. Спасибо, почитаю как со скриптбл объектами там делают.
@@ilyanazarov7001 а еще можно заюзать Zenject) Хотя, честно говоря, я не совсем понимаю в чем такое уж прям зло синглтонов. Для менеджеров и других штук которые гарантировано существуют в одном экземпляре вроде норм. Я, например, раньше ссылки на префабы хранил в синглтон-контейнерах ( чтобы не через Resource.Load ), сейчас то же самое только через зенджектовский BindInstance.AsSingle, разницы вроде нет особой для работы.
Спасибо за видео. Очень полезно. Подскажи, пожалуйста, как выводить на экран ингейм FPS?
Зачем?
Самое простое - (int)(1f / Time.deltaTime). Но по хорошему каждый update увеличивать счётчик на единицу, и каждую секунду выводить его и сбрасывать
у меня при старте загрузочный экран висит, не смотря на то, что он находится в idle состоянии
что если пропала вкладка сцен????? как её вернуть,помогите пожалуйста
Спс)
А загрузочный экран нужен только для красоты или он чем то помогает ?
14:05 чтож бывает:)
А как открыть сцену созданную на другом компе?
Какой редактор кода вы используйте?
Rider
Здравствуйте! А возможно сделать появление сцены с задержкой? Что бы не было видно действий начальных которые в сцене и которые я не хочу чтобы было видно? Буквально на 3 секунды что бы сцена побыла в темноте при этом она уже загрузилась но ещё не показывалась.
Можешь анимацию с чёрным экраном на 3 секунды на новой сцене добавить.
Мы делали игру матч-3 + ферма, и после матч-3, выдавалась награда и ферма грузилась секунд 5.
Ну я как гейм-дизайнер попросил программистовЮ чтобы после победы на уровне игроку выдавался сундук, для открытия которого нужно дождаться "прогресса взлома" (на фоне загружалась ферма), когда ферма загружалась - сундук открывался, из неё вылетала награда - было клёво.
Пришли заказчики, сказали что им не нравится что сундук с наградой так долго открывается, что открытие должно быть мгновенным, и вернулись к варианту скучного экрана загрузки. -_-
Я так и не понял куда кидать скрипт MenuManeger
Что это за среда разработки?
всё вроди хорошо, но можно ли сделать загрузку более плавной?) У меня дофига времени тратится на создание навмеша, можно ли показать его загрузку? Во время создания навмеша телефон телефон как-будто повисает.
Хм посмотрел видео и получается что никак не сделать то, о чём я говорил)
Смотря чем навмеш создаётся, если прям фризит и нет никакой асинхронной функции, то наверное не получится. А если есть какой-то вариант не блокировать основной поток, то можно показать полоску, даже если не знаем настоящий прогресс, просто сделать чтобы она двигалась с определённой скоростью, и к концу бара замедлялась
Какую IDE ты используешь?
Jetbrains Rider
14:06 принимает число от единицы до одного
Автор куда кидать menumanager?
С тобой можно стать настоящим программистом и получить приглашение от Rockstar games, Valve, Ubisoft, Electronic arts.
Unity использует .NET и у него интересный способ билдить. Он делает промежуточный код, а во время запуска он по сути компилирует проект. Это решает вопрос кроссплатформенности, но получается проблема первых загрузок. Типо запустил 1 раз - долго. На второй - уже быстро.
Может быть в этом дело. Хотя скриптов почти нет на той сцене, так что скорее всего это просто какие-то ассеты не выгрузились, потому что сцена меню почти ничего не содержит
Emerald Powder, а можешь сделать видео на одну тему? Я много где ищу, но нигде нету на это ответа, может ты знаешь? Можно ли в юнити, сделать перед возможность давать игроку выбирать, сколько ОЗУ выделить на работу игры(пример такого - это майнкрафт(больше я такого нигде не видел)). А в самой игре потом где-нибудь выводить то сколько ОЗУ по итогу выделено на игру, и сколько она потребляет в realtime.
Задавать скорее всего нельзя, это фишка java, чтобы в C#/Mono такое было я не слышал. А вот получить сколько используется скорее всего можно через стандартную библиотеку, наверное как-то так
forum.unity.com/threads/how-to-get-entire-memory-usage-at-runtime-in-game-build.465564/
@@EmeraldPowder спасибо. Действительно, получилось через profiler вывести. Оказывается все было так просто.
Я всегда думал как игра понимает сколько ей осталось подгрузить ресурсов, когда рисуется прогресс бар. Оказывается довольно приблизительно. И у нас тут быстро скакнуло до 90% и немного подождало, а я видел плавные варианты. Значит оно зная, что ресурсы будут грузиться 3 сек + - брали и делали бар длительностью 5 сек например, и плавно рисовали прогресс бар, зная, что на загрузку нужно где-то 3 сек. В зависимости не от реального положения дел, а просто по времени.
Очень интересно, но можно было немножко и помедленнее, на такой скорости не понятно то ли слушать и понимать о чем идет речь, то ли смотреть)
Спасибо, одним вопросом стало меньше.
@Даниил Глаголев там же есть update и fixed update, если делать через апдейт, да оно может быть по разному, где-то быстрее, где-то медленнее. Через fixed update на любом компе будет одинаково, потому что там зависит не от частоты, а от времени. Так что можно какой-то средний промежуток подобрать и будет норм. Быстрый комп немножко подождет, у медленного полоса дойдет до конца и чуть позже будет переход.
я наверное никогда все же не стану кодером на Unity... (просто команды понимаю механику скрипта и так далее но как раставлять скобки и почему никак не допираю, максимум что получается учить это python так как их там меньше), но все равно спасибо за твои видео очень расслабляет и информативно! продолжай в том же духе!
А что не так со скобками?
@@user-kn9jr4mw5o да, действительно! Скобки - не самая сложная вещь в программировании.
Здравствуйте, помогите:
Я хз как сделать чтобы включить скрипт через другой ( если объект исМаинд тоесть мой нужно включить скрипт движени)
Помогите пожалуйста.
Заранее спасибо.
Ты можешь создать переменную типа MonoBehaviour и поместить в неё скрипт, который нужно включить, а затем присвоить true свойству enabled этого MonoBehaviour.
Думаю, что есть способ лучше, но я такого пока не знаю)
если загрузка уровня предполагает время в 20-30 секунд.. я бы сделал экран инвентаря или какието дополнительные подсказки или хитрости для игрока. так игрок бы провёл это время с пользой. ещё можно сделать полет камеры гдето над облаками.. или ещё чтото. идей много
Кстати инвентарь интересная идея, нигде вроде бы такого не видел, но вещь была бы полезная игроку! Подсказки-советы это классика, да, они тоже хорошо смотрятся
Мне очень интересно как реализовать переход межу сценами как у God of War или третий асасин там во времяя загрузки сцены ы можешь бегать по определённой зоне слушать всекие реплики и тд
По идее можно на этом экране загрузки любую мини- (или не мини) игру сделать. Но скорее всего она будет тормозить, по крайней мере если обычным юнитиевским LoadSceneAsync пользоваться
@@EmeraldPowder Может Unity не оптимизирована под данные задачи, а вот UE скорее всего подойдёт
Отличный ролик) Я бы предпочел просто крутилку на загрузочном экране сделать, т.к. возвращаемый Unity процент загрузки очень резко возрастает, и реальной информации о прогрессе загрузки игроку почти не даёт.
Спасибо! Да, если загрузка так как на видосе работает, то можно и крутилку. Но точно помню что у меня в каком-то старом проекте она прямо как часы прогресс возвращала, то ли там ассеты получились все похожего объёма, то ли просто разбиты на много файлов были
P.S. канал у тебя годный)
@@EmeraldPowder да, наверное равномерно были распределены ресурсы, я на самом деле особо не вникал в алгоритм подгрузки данных, как-то не надо было)
Спасибо за теплый отзыв по каналу)
Сделай гайд по рендерингу. ПЖ
Я 4 раза видео пересмотрел. У меня просто загружается сцена и нет никакой загрузки. Даже на милисекунду не появляется. Я не понимаю что не так.
Я ведь по клику на кнопку должен вызывать метод
" public void GoToGame()
{
SceneManager.LoadScene("Game");
}"
из MenuManager?
Вместо SceneManager ты добавляешь SceneTransition.SwitchToScene("Game");
А куда скрипт Menu Manager засунул никак не могу понять, скрипт который запускает смену сцен емае, целый день на это потратил
Надо было бы упомянуть что все файлы из папок Resourсes попадут в билд
Как идея насчет видеоуроков по Shader Graph Unity?
По нему у меня только старенький видос про пиксельный огонь, если придёт в голову какой-то крутой и оригинальный эффект - буду делать ещё
Здравствуйте. Встретился с задачей сделать плейлист с музыкой, который меняет музыку по окончанию на следующую или случайную в списке. Пару дней копаюсь в Гугле и на Ютубе и все только рассказывают как просто добавить музыку на сцену. У вас есть мысли по этому поводу или желание сделать ролик? Если есть материалы почитать, то с радостью ознакомлюсь
Можно просто использовать один AudioSource, навесить на него скрипт с массивом AudioClip'ов, и в этом скрипте в Update проверять, если этот AudioSource.isPlaying == false, задавать ему случайный трек и вызывать Play. И ещё убрать у него галочку loop, чтобы когда трек закончится, он остановился, и isPlaying стало false
@@EmeraldPowder Спасибо большое. Очень выручил
Есть вопрос, можно ли как то загрузить сцену с сервера и перейти в неё?
кури AssetBundles
Спасибо тебе за такой ролик, сам бы точно не сделал) И немного критики, я думаю тебе стоит называть свои переменные немного покороче
добрый день! добавил ваш скрипт в свои сцены как описано в видео(код скопировал с гитхаба, объекты и префаб сделал, аниматор настроил). Переход из меню в игровую сцену работает, из игровой сцены обратно - нет. В режиме Game в Editore в иерархии появляется объект Menu(isLoading) и больше ничего не происходит. Ни ошибок ничего. При повторном нажатии на кнопку выхода - появляется второй такой же объект Menu(isLoading) в иерархии и ничего больше не происходит.
Подскажите, в чем может быть проблема? Думал ошибка в синглтонах (левел контроллер реализован через синглтон), переписал ваш код на публичные классы с вызовом через гейм обджекты на сцене - все тоже самое.. Скорее всего что то с подгрузкой сцен через async, но знаний не хватает понять что именно идет не так.
почитал про синглтоны - проблема точно не в них. Проверю еще раз, возможно, где -о ошибся с названиями булевых операторов и где-то не срабатывает переключение.
не срабатывает триггер sceneOpening при переходе на новой сцене, не срабатывает функция в конце анимации.
2 раз при запуске сцены она просто не загружается написано is loading а не грузит, что делать?
привет, нашел решение?
Привет, вы очень хорошо объясняете. Спасибо за такой канал. Смотрю каждое видео и хоть знаю это материал, но каждый раз подчеркиваю что то новое. Однако можно более серьёзные вещи . Допустим не знаю как для других хотел бы послушать про шейдеры, про любые. Про arcore углубленно. Про методы редко используемые, лайфхаки, интересные алгоритмы.
Спасибо!
Про шейдеры думаю будут ещё видосы, с ними много идей что можно сделать, и про всякие лайфхаки и методы много всего копится пока работаю с Юнити. Про arcore вот только ничего не знаю