Загрузочный экран и смена сцен в Unity 3D

Поделиться
HTML-код
  • Опубликовано: 13 июн 2020
  • Как сделать красивое, правильное и быстрое переключение сцен в Unity 3D. С анимацией, полоской и текстом загрузки, и без фриза всей игры. Я расскажу про то зачем и почему вообще в Юнити используются сцены, а потом мы сделаем удобный переключатель сцен с полоской загрузки, научимся делать loading screen'ы с любой анимацией, ну и конечно параллельно покажу вам несколько полезных кнопок, галочек, и хоткеев Unity
    Ссылка на скрипт - gist.github.com/Glavak/5eb736...
    Patreon канала - / emeraldpowder
    Наш Discord - / discord
    На этом канале регулярно появляются новые видео, которые позволят тебе научиться создавать игры, или подарят новые идеи и вдохновение, если ты уже умеешь. Подписывайся!
    Остались какие-то вопросы, пожелания, или идеи для других видео? Смело пиши в комментарии под видео

Комментарии • 214

  • @mikhailk2812
    @mikhailk2812 3 года назад +20

    У вас талант преподавателя. Вы так филигранно балансируете между "водой" и информацией.
    Спасибо!

  • @IluXa4000
    @IluXa4000 4 года назад +70

    Ты заслуживаешь больше подписчиков, спасибо за полезные видео

  • @RimuruDev
    @RimuruDev Год назад +8

    Охаё! на связи Rimuru Dev. Если вы повторили точ в точ за автором и у вас ничего не получилось. Сделайте следующее () =>
    Там где вы жмякаете на кнопку перехода на новую сцену, вместо SceneManager.LoadScene(sceneName); воспользуйтесь SceneTransition.SwitchToScene(sceneName);
    sceneName - это название вашей сцены на которую вы хотите перейти.
    Пример: “Level_0” вот так SceneTransition.SwitchToScene(“Level_0”);
    Проверьте в File=>Build Settings установлены ли ваши сцены.
    *Данный текст был написан для новичков которые не смогли осилить данный гайд. Надеюсь спас хотя бы пару горящих пуканов интернов/джунов)

  • @Watchan
    @Watchan Год назад +20

    Если у вас Андройд, то ожидайте это =>
    При загрузке большой сцены на слабых устройствах , с вероятностью 99,9% будет вылетать приложение из-за большой потребности оперативной памяти.
    Нужно разделять загрузку сцены на этапы.
    Разрабатывайте игры с умом ❤

  • @kuper4521
    @kuper4521 4 года назад +3

    Обожаю смотреть тебя, самые лучшие уроки :)

  • @valeriavicious2172
    @valeriavicious2172 4 года назад +3

    Вы бы знали, как этот урок вовремя))!Спасибо!!!

  • @homelessandhungry4529
    @homelessandhungry4529 Год назад +1

    Отличная подача и полезные видео, спасибо за труды!👍

  • @limitlessimagination8946
    @limitlessimagination8946 4 года назад +3

    Супер! Алгоритм ютуба знает, что мне надо.

  • @cbubg
    @cbubg 4 года назад +1

    Как всегда великолепно, большое спасибо!

  • @alexsischin6636
    @alexsischin6636 4 года назад +3

    Интересные темы затрагиваешь из ролика в ролик. Потом как-нибудь всё посмотрю)

  • @_sabrano
    @_sabrano 3 года назад +39

    Когда узнал, что прогресс бары фейковые: 😭

    • @TeamSLywnow
      @TeamSLywnow 3 года назад +3

      Ну нет, можно сделать и настоящий, но там гемора больше

    • @SUBzOnFire
      @SUBzOnFire 3 года назад

      @@TeamSLywnow Ну помоги

    • @user-io6er2uy6k
      @user-io6er2uy6k 3 года назад

      @@SUBzOnFire brackeys

  • @FoubleTerry
    @FoubleTerry 4 года назад +1

    Спасибо за материал, очень интересно!

  • @user-kf4ye7zy4z
    @user-kf4ye7zy4z 3 года назад

    Крутые видосы, ничего лишнего. Спасибо!!!

  • @filimonov207
    @filimonov207 11 месяцев назад +7

    Для тех, у кого не перетаскивается Text Loading Percent.
    Используйте библиотеку using TMPro;
    далее замените public Text LoadingPercentage; на public TMP_Text LoadingPercentage;
    Надеюсь помог, желаю всем удачи!

  • @richardgreen9787
    @richardgreen9787 3 года назад

    Удачи тебе, отличные уроки👍👍👍

  • @toplib5185
    @toplib5185 Год назад

    Спасибо автор, я честно две недели думал как это сделать. Как-то на костылях тогда сделал и оставил! Через месяц смотрю твоё видео и офигел у меня половина всего было почти наоборот.

  • @thequartzsquirrel4105
    @thequartzsquirrel4105 4 года назад +2

    Спасибо за видос , щас буду смотреть

  • @shitposting_box
    @shitposting_box 4 года назад +27

    Аниматор и неотключенный канвас будут обновляться каждый кадр, даже если они ничего не воспроизводят. Для анимации UI есть паки вроде UITween, все вещи вроде смены прозрачности или движения влево-вправо в них можно спокойно сделать.

    • @maxalm3318
      @maxalm3318 Год назад +1

      Поправьте если я не прав, но каждый объект на сцене обновляется каждый кадр даже если ничего не делает? Так в чем исключительность аниматора?

    • @shitposting_box
      @shitposting_box Год назад

      ​@@maxalm3318 ​ отключенные компоненты/целые объекты, как правило, не обновляются. Фишка аниматора в том, что даже при отсутствии анимаций он будет дергать отрисовку. А если мы говорим о канвасе размером с экран, то каждый кадр будет перерисовываться пустой экран, зачем?
      Анимации как правило используются при появлении/исчезании элементов, а кроме этих моментов сам элемент большую часть времени статичен, тогда выгоднее использовать не аниматор, а какие-то штуки вроде UITween, которые могут анимировать объект эти пару секунд и потом не забивать видюху/проц ненужной работой

  • @SchwarzenPuh
    @SchwarzenPuh 4 года назад

    Отличный канал,развития и подписоты) Но хотелось бы спросить,будет ли в обозримом будущем туториал или краткий гайд,для тех кто только начал изучение юнити и C+?

  • @user-ds9zg6fd3s
    @user-ds9zg6fd3s 4 года назад

    Спасибо) оч. полезное видео!

  • @kafif28
    @kafif28 4 года назад +8

    Видео: 3 минуты назад
    Комменты: классное видео

    • @SHILY-PROJECT
      @SHILY-PROJECT 4 года назад +10

      Просто здесь автор фигни не снимает, так что мы заранее знаем, что классное))

    • @kafif28
      @kafif28 4 года назад +3

      @@SHILY-PROJECT это да)

  • @malltshik
    @malltshik 3 года назад +18

    "которое принимает число от единицы до одного" :) 14:05

    • @tenko4647
      @tenko4647 2 года назад

      так, и че?

    • @amongryzh
      @amongryzh Год назад

      @@tenko4647 ну он хотел сказать от нуля до одного.

  • @mrminecrafter3829
    @mrminecrafter3829 3 года назад

    Спасибо большое автору !!!

  • @flypew
    @flypew 4 года назад +12

    Спасибо за урок! Планируешь сделать видео по ECS/Job System в Unity?

    • @watermelon0guy
      @watermelon0guy 4 года назад +1

      Сам был бы рад об ECS посмотреть. Но система, как говорит сама Unity и ребята проводившие конференцию, говорили, что система ещё немного сырая. Да и пакет ещё в preview версии.
      А Job System уже достаточно полноценная система. Но думаю лучше сделать видео сразу по обоим системам сразу, когда обе будут допилены

    • @user-bf3pu1yl7k
      @user-bf3pu1yl7k 3 года назад

      @@watermelon0guy а в чем функция job system?

  • @AnderX003
    @AnderX003 4 года назад +2

    12:44 вооооооу, не знал что там есть такая функция. Спасибо

    • @EmeraldPowder
      @EmeraldPowder  4 года назад +1

      Пожалуйста, всегда стараюсь побольше фичей которые сам знаю использовать в видео и показывать

  • @_T-800_
    @_T-800_ 3 года назад +1

    Автор Видео, привет!). Подскажи, а не проще переход сцены, в частности как у тебя, сделать через способ Таймлайн? В скрипте меньше записей надо делать и манипуляции меньше чем с Аниматором. Интересно твоё мнение:). Метод из видео используешь потому, что так привык или по другим причинам?

  • @SHILY-PROJECT
    @SHILY-PROJECT 4 года назад +1

    Наааайс! Спасибо большое!

  • @chirranir
    @chirranir 3 года назад

    спасибо, очень полезное видео)

  • @ftinkere
    @ftinkere 3 года назад +1

    Почти 2 ночи. завтра рано вставать. Я ничуть не геймдевер... И смотрю этот видосик
    Спасибо за хорошие ночи

  • @T1m0the0S
    @T1m0the0S 4 года назад +3

    Тоже считаю хранить файлы не по типу, а по сущности профитнее. Спасибо за уроки! Годно вещаешь)

    • @-unity-
      @-unity- 4 года назад +2

      Спорное утверждение. Допустим, что сначала ты делаешь сущность игрока и забрасываешь туда скрипты. И есть сущность врага, где другие скрипты, которые присущи врагам. А потом тебе вдруг пришло в голову снабдить врагов какой-то функцией, которая уже отлично себя зарекомендовала с игроком. Что ты будешь делать? Дублировать скрипт? Или создашь особый раздел "игрок и враги"? А через месяц ты вдруг решил дополнить игру союзниками, которые не являются игроком и не являются врагами. Дальше как? Ещё один дубль скриптов? Или ещё набор невнятных папок "игрок и союзники", "союзники и враги", "игрок, союзники и враги"... В общем, тупиковое это направление.

    • @T1m0the0S
      @T1m0the0S 4 года назад +1

      @@-unity- я делаю папку существа. В ней все общие скрипты и папки с файлами конкретно игрока, моба Васи, мода феди и тд. Если в какой то момент мне понравилась фича например моба Васи, я ее код переношу в общие скрипты.

    • @EmeraldPowder
      @EmeraldPowder  4 года назад +1

      Тут дело вкуса, но по типу можно и так отстортировать фильтрами (спрайты/меши), так что такие папки по сути дублируют функционал. А по сущностям - хотя бы примерно знаешь где начинать искать, например надо поменять анимацию врага, не вспоминаешь как она сделана, через скрипт или аниматор, а сразу идёшь в папку врага. Хотя по сути можно так же ввести в поиск "Enemy" и получишь всё связанное с врагом, так что тут тоже некоторое дублирование

    • @T1m0the0S
      @T1m0the0S 4 года назад

      @@EmeraldPowder я просто ленивая задница что то искать. Я лучше изначально запарюсь удобно покласть файлики)

  • @GIGERITYduxast
    @GIGERITYduxast 3 года назад +1

    В игре Superliminal, как по мне, очень интересные экраны загрузки)

  • @user-jq7wb4uo9l
    @user-jq7wb4uo9l 4 года назад

    еще как вариант для загрузки сцены можно создать Task, предварительно загрузить небольшой процент бара для видимости процесса и при загрузке сцены await Task.. передавать заполнение бара лерпом\твином до 1

  • @RuFrost1
    @RuFrost1 3 года назад +2

    Столкнулся с проблемой зависания LoadSceneAsync на android, так как автор видео меня очень заинтересовал подобным способом загрузки, отказываться от него я не хотел. Пришлось погуглить, что бы избежать проблемы зависания. Немного доработал код согласно официальной документации и проблема решилась. Вот ссылка для тех кто с этим столкнулся. gist.github.com/devskgames/811475dea5f37d020b785fbd9a7d76f3
    Спасибо автору за изысканные решения, ваши видео очень помогают в разработке!

  • @vladIslav10722
    @vladIslav10722 3 года назад +2

    Хорошее видео. Но хочется сделать замечание. Singleton - это не совсем то что было на экране, либо я не совсем понял мысль. Паттерн синглтон - паттерн при котором имеется только ОДИН инстанс класса. Реализуется он как раз похожим способом что ты сделал. Есть статическое приватное поле _instance. Есть статическое публичное свойство Instance => _instance ?? (_instance = new Class()) (если инстанс существует, верни его, если нет, создай новый, сохрани его, и верни) и делается приватный конструктор дабы нельзя было порождать новые инстансы из вне. Только использовать конструкцию Class.Instance.

  • @user-ed3hp3pr6z
    @user-ed3hp3pr6z 4 года назад +1

    Привет, можешь, пожалуйста, сделать видео о том, как можно с помощью некого инструмента (например кирки или бура, неважно), изменять геометрию террейна?

  • @p5ina
    @p5ina 4 года назад +1

    Спасибо за хороший туториал

    • @starblaze4555
      @starblaze4555 4 года назад +1

      Вышло 4 минут назад))

    • @EmeraldPowder
      @EmeraldPowder  4 года назад

      Приятно когда в тебя верят уже заранее)

  • @user-in9jv9rt4o
    @user-in9jv9rt4o 4 года назад

    Можешь-ли ты сделать видеоурок по теме скриптов, выполняющихся в редакторе. Я знаю, что такое есть, но не знаю, как это реализуется. Для примера, можно показать тайл из урока по процедурной генерации. А именно, сделать какой-то скрипт, который будет на тайле, который, по нажатию кнопки в инспекторе, будет заранее просчитывать боковые стенки и записывать информацию оттуда в массив, находящийся в скрипте. Прям больно становится, когда вижу, сколько расчетов происходит при запуске этой сцены. Для того, чтобы наполнить урок больше, можно рассказать ещё про какие-то способы применения и особенности этого метода. Заранее спасибо

  • @FOX_YouTube
    @FOX_YouTube Год назад +1

    А что если пишет: не содержит определения для fillAmout и не удалось найти доступный метод расширения fillAmout, принимающий первый аргумент типа AsyncOperation. Вам не хватает директивы using или ссылки на сборку?

  • @ilyanazarov7001
    @ilyanazarov7001 4 года назад

    Настоящий бриллиант среди русскоязычных каналов по Unity! Только с синглтоном, имхо, слегка небрежно получилось. Наверное, лучше заводить в awake, и делать до конца, с проверкой и dontdestroy, чтоб служить примером для адептов) Спасибо за очередной туториал!

    • @EmeraldPowder
      @EmeraldPowder  4 года назад +2

      Спасибо!
      В Awake задавать instance да, это было бы правильнее. С dontdestroy тут бы не зашло, так как он в обычном канвасе у меня лежит, но если сделать префаб вместе с канвасом то это хорошая идея, тогда можно было бы не таскать его в каждую сцену

  • @summersaychannel5157
    @summersaychannel5157 4 года назад +5

    Насчёт отображения fillAmount: надо progress / 0.9f просто так 100% не будут отображены.
    UPD: даже на скорости 0.25х нет 100%

  • @gangli809
    @gangli809 4 года назад

    Привет, я не могу найти инфу о том, какие требование с технической точки зрения при попытки портирования игры с ПК на android, а также какие есть нюансы с изображениями? HELP!

  • @StomperFromChildhood
    @StomperFromChildhood 4 года назад

    Было бы очень здорово увидеть гайд по созданию клона Subway Surfers(управление свайпами по линиям, движение мира на игрока(а не игрока по миру), генерация препятствий и т.д)
    Такого не планируется?

  • @sevatar2619
    @sevatar2619 4 года назад

    Я разрабатывал свою игру около года, несложная аркада для андройда. Сейчас у нее всего по паре новых игроков в день (чего тоже добиться было трудновато). Мне хотелось бы узнать, каким образом можно продвинуть свое приложение? Возможно есть какие то тонкости настройки в гугл плей консоль? Или как заинтересовать издателя? Каких издателей посоветуете?

  • @TaiKomarinsky
    @TaiKomarinsky Год назад +2

    Есть какой-то скрипт на кнопке? Ты добавил префаб в сцену меню, но никак не привязал работу скрипта к кнопке. Кнопка телепатически воспроизводит скрипт?

  • @RavenG102
    @RavenG102 4 года назад +5

    Отличное видео, спасибо за труд, было бы интересно посмотреть о переносе данных из сцены в сцену. Вроде перемещения игрока по комнатам лабиринта, если уже есть что то подобное на канале, поделитесь ссылкой плз. :3

    • @mymirwastaken
      @mymirwastaken 2 года назад +2

      Если переменные, то просто после public делаешь static и там дальше тип м название. Потом из другого скрипта или сцены вместо обычного названия переменной пишешь имя скрипта и через точку название переменной. Всё

  • @Netry27
    @Netry27 4 года назад +1

    А можно видео на тему публикации приложений в app store. Статьей много и все говорят об разном и не всегда получается с первого раза выложить.
    Все эти сертификаты, вечно забываешь, какой куда сувать и какой нужно создать.
    Буду благодарен за этот материал.

  • @crusader347
    @crusader347 6 месяцев назад +1

    Помогите, загрузка уровня через главное меню проходит успешно, но когда загружаю главное меню с уровня, то он загружается, почему-то, не корректно.
    Вместо меню черный экран.

  • @Abuir1
    @Abuir1 6 месяцев назад +1

    Если у вас при попытке перехода игра застрявает на чёрном экране, проверьте, *все ли нужные вам сцены включены в билд!* Я дважды всё повторил в точности, убрал все лишние анимации (и свои, и автора) даже, чтобы остался только рабочий скелет, но у меня была вот такая вот проблема.
    А ещё, проверьте, не перепутаны ли у вас анимации выключения и включения. На всякий. А то неприятно будет, поверьте.

  • @wi5p916
    @wi5p916 2 года назад

    Здравствуйте, сделал по видео ролику экран загрузки, но использую для красивой анимации перехода в настройки, суть в том что если зайти на уровень, выйти в меню и зайти в настройки то сама игра зависает, то есть анимация не запускается, но в юнити написано что сцена грузится и так может до бесконечности, но если изначально зайти в настройки то все хорошо. Возможно есть предположения с чем это может быть связано?

  • @user-wt8eg1fw3e
    @user-wt8eg1fw3e 4 года назад +4

    Спасибо за урок, не могли бы вы создать видео на тему "бесшовный открытый мир на unity3d"?🙏

    • @Lamanho04
      @Lamanho04 4 года назад

      Ты что Майнкрафт хочешь создать?

  • @TheMrKMen
    @TheMrKMen 2 года назад

    А была бы необходимость создавать билд каждый раз, если по окончании загрузки просто добавить "Нажмите клавишу, чтоб завершить загрузку"?)
    Ну типа там есть allowSceneActivation, и его можно ставить на true при нажатии кнопки, или это не сработает, и всё равно надо билд делать?

  • @orimaha8032
    @orimaha8032 4 года назад

    Ну по идеи после первой загрузки сцены в билде она улетает в оперативку и там чилит, при повторном входе в сцену она быстро её достает из этой оперативки. Могу ошибаться, но вроде так.

  • @user-jl3zy4lq3x
    @user-jl3zy4lq3x 4 года назад

    По Братски, подскажи, как мне реализовать в онлайн игре на PUN2 и Unity 3D синхронизацию IK очень долго ищу, не смог найти. Пишу тебе потому что у тебя есть курс по PUM2

  • @big_katlet
    @big_katlet 2 года назад

    Такое качество, а так мало подписчиков и лайков. Успехов тебе и спасибо за видео!

    • @VladikFoxGames
      @VladikFoxGames 2 года назад

      65К это не мало скажу честно

  • @azret-magometov
    @azret-magometov 4 года назад +1

    Здоров, дружище, не знаю твоего имени, но видео у тебя супер!
    Хочу тебе предложить перенять названия для переходов из Андроидной разработки. У нас эти методы помечаются как enterTransition для входа и exitTransition для выхода. Может понравится ¯\_(ツ)_/¯

  • @andrey.shpilevoy
    @andrey.shpilevoy 2 года назад

    А можешь впредь делать захват екрана в меньших размерах? На планшете несмотрибельно.

  • @MrZik888
    @MrZik888 4 года назад

    Сделай видос про Unity UI Builder. Тема то свежая.

  • @leminc2815
    @leminc2815 4 года назад

    Отличные уроки, спасибо. Главное, что часто выходят. А можешь записать урок, как настроить визуал код, чтобы методы юнити показывал, я чет пробовал и не вышло ничего.

    • @funnytime4372
      @funnytime4372 4 года назад +1

      Держи:
      ruclips.net/video/9GsV9TpWtzw/видео.html

    • @leminc2815
      @leminc2815 4 года назад

      @@funnytime4372, попробую. Обнял :)

  • @yesiamppl
    @yesiamppl 20 дней назад

    помогите я сделал точно также но без плавного перехода, и когда сцена загрузилась то у меня какая-то беда со светом, то-есть я уже даже пост процессинг отрубил но свет при переходе на сцену становиться зеленоватым и я это уже на сцене никак не могу пофиксить, и причем если я начну игру прямо с основной сцены то такого бага нету

  • @gwenthetodeke
    @gwenthetodeke Год назад

    Не получается создать второе соединение New State. Кнопка Make Transition на второй раз просто отсутствует в списке. Что делать?

  • @Puxatru
    @Puxatru 4 года назад +3

    Спасибо за видео. Расскажите, как правильно работать с Additive сценами. Особенно интересует, как избавиться от ошибки с несколькими AudioListener одновременно и как грамотно выключить камеру одной сцены и переключить на другую, чтобы получилось бесшовно и без ошибок отсутствия камеры.

    • @T1m0the0S
      @T1m0the0S 4 года назад

      Может просто переносить камеру между сценами? И в каждой сцене добавить объект, который в методе старт будет перемещать трансформ камеры по нужным координатам? 🤔 Костыль, конечно, но думаю поможет.

    • @ilyanazarov7001
      @ilyanazarov7001 4 года назад

      С какой целью Вы хотите использовать additive? Переходы между камерами лучше делать в Cinemachine. Сами камеры и AudioListener при этом всегда держать в основной сцене или в отдельной сцене, которую держим постоянно загруженной.

    • @Puxatru
      @Puxatru 4 года назад

      @@ilyanazarov7001 Схема была такая: 1. Сцена с главным меню (Камера, UI, основные менеджеры приложения (реклама, ачивки и т.п.) 2. Сцена с персонажем и уровнем (3D камера, контроллер персонажа и т.п.). Сцену 2 загружал аддитивно, чтобы работали менеджеры приложения, но столкнулся с ошибками для 2 камер. Не получилось отключить одну и сразу же включить другую, не получив ошибку с AudioListener. Правда, я переключал сцену в корутине, дожидаясь ее полной загрузки. В принципе, ошибка эта не страшна и всего 1 раз выходит. Но оказалось, что в webGL билде она вешает приложение.

  • @Malloriak
    @Malloriak 4 месяца назад

    Не очень понял, как Юнити проверяет используемость ресурсов? если они могут загружаться динамически из Resources.Load по имени?

  • @Gold-xu9ku
    @Gold-xu9ku 3 года назад

    Самый интересный экран загрузки, на мой взгляд, какой-нибудь интерактив, ну это для долгих загрузок - первых запусков, обнов и тд.
    В БДМ, например, flappy bird была и потом ещё мини-бонусы в игре дали)

    • @EmeraldPowder
      @EmeraldPowder  3 года назад

      Да, flappy bird точно можно вставить. Но вообще когда вижу такое в играх задумываюсь что может им стоило подумать как ускорить эту загрузку, а не развлекать игрока)

  • @JON-dj5uy
    @JON-dj5uy 4 года назад +12

    Привет, спасибо, можешь сделать перенос данных между сценами, переносить геймобжекты, стринги,инты .

    • @kawaikami
      @kawaikami 4 года назад +8

      Даже в видео на 10:19 то, что мы, большие дяди, называем синглтоном 😂
      То есть для начала советую создать какой-то класс GameManager, где будет статическое поле Instance.
      В методе Start напиши:
      if(Instance == null) { Instance = this; DontDestroyOnLoad(gameObject); }
      else GameObject.Destroy(gameObject);
      Кинешь этот скрипт на объект на первой сцене, при переходе на другую он не будет уничтожаться.
      Теперь в нем ты можешь объявлять другие скрипты и обращаться к ним будешь так: GameManager.Instance.Имя_скрипта

    • @ilyanazarov7001
      @ilyanazarov7001 4 года назад +1

      @@kawaikami Синглтоны хорошо использовать только в совсем мелких проектах. Несколько таких менеджеров, и уже начнется боль. Вот шикарная презентация, как люди изящно решают эту и другие задачи с помощью Scriptable Objects: ruclips.net/video/raQ3iHhE_Kk/видео.html

    • @trostlast1446
      @trostlast1446 4 года назад

      @@kawaikami Господи 😍😍😍пупсик я тебе готов дать, спасибо этот код мне как раз нужен 😍❤️спасибооооо.

    • @kawaikami
      @kawaikami 4 года назад +1

      Пхахаха, рад что помог кому-то. В архитектуре, которую использую я синглтон всего один. Это как точка входа в приложения, в нем уже менеджеры, в менеджерах контроллеры и тд. Спасибо, почитаю как со скриптбл объектами там делают.

    • @vadimkrakhmal
      @vadimkrakhmal 3 года назад

      @@ilyanazarov7001 а еще можно заюзать Zenject) Хотя, честно говоря, я не совсем понимаю в чем такое уж прям зло синглтонов. Для менеджеров и других штук которые гарантировано существуют в одном экземпляре вроде норм. Я, например, раньше ссылки на префабы хранил в синглтон-контейнерах ( чтобы не через Resource.Load ), сейчас то же самое только через зенджектовский BindInstance.AsSingle, разницы вроде нет особой для работы.

  • @TheDasMatze
    @TheDasMatze 4 года назад +2

    Спасибо за видео. Очень полезно. Подскажи, пожалуйста, как выводить на экран ингейм FPS?

    • @quantdev
      @quantdev 4 года назад +1

      Зачем?

    • @EmeraldPowder
      @EmeraldPowder  4 года назад +1

      Самое простое - (int)(1f / Time.deltaTime). Но по хорошему каждый update увеличивать счётчик на единицу, и каждую секунду выводить его и сбрасывать

  • @user-ml5tn8qn8j
    @user-ml5tn8qn8j Год назад

    у меня при старте загрузочный экран висит, не смотря на то, что он находится в idle состоянии

  • @ban7859
    @ban7859 3 года назад

    что если пропала вкладка сцен????? как её вернуть,помогите пожалуйста

  • @placeforgamestv8663
    @placeforgamestv8663 4 года назад

    Спс)

  • @VLADGOGame
    @VLADGOGame 5 месяцев назад

    А загрузочный экран нужен только для красоты или он чем то помогает ?

  • @OdemGeek
    @OdemGeek 4 года назад +1

    14:05 чтож бывает:)

  • @3D_Emergency
    @3D_Emergency 2 года назад

    А как открыть сцену созданную на другом компе?

  • @dontarrrrrrrr
    @dontarrrrrrrr Год назад +1

    Какой редактор кода вы используйте?

  • @lora6938
    @lora6938 2 года назад

    Здравствуйте! А возможно сделать появление сцены с задержкой? Что бы не было видно действий начальных которые в сцене и которые я не хочу чтобы было видно? Буквально на 3 секунды что бы сцена побыла в темноте при этом она уже загрузилась но ещё не показывалась.

    • @Darth_Ejecutor
      @Darth_Ejecutor 7 месяцев назад

      Можешь анимацию с чёрным экраном на 3 секунды на новой сцене добавить.

  • @filipp-pro
    @filipp-pro 2 года назад

    Мы делали игру матч-3 + ферма, и после матч-3, выдавалась награда и ферма грузилась секунд 5.
    Ну я как гейм-дизайнер попросил программистовЮ чтобы после победы на уровне игроку выдавался сундук, для открытия которого нужно дождаться "прогресса взлома" (на фоне загружалась ферма), когда ферма загружалась - сундук открывался, из неё вылетала награда - было клёво.
    Пришли заказчики, сказали что им не нравится что сундук с наградой так долго открывается, что открытие должно быть мгновенным, и вернулись к варианту скучного экрана загрузки. -_-

  • @holololo4451
    @holololo4451 2 года назад

    Я так и не понял куда кидать скрипт MenuManeger

  • @mixa8303
    @mixa8303 Год назад

    Что это за среда разработки?

  • @Veyron104
    @Veyron104 4 года назад

    всё вроди хорошо, но можно ли сделать загрузку более плавной?) У меня дофига времени тратится на создание навмеша, можно ли показать его загрузку? Во время создания навмеша телефон телефон как-будто повисает.
    Хм посмотрел видео и получается что никак не сделать то, о чём я говорил)

    • @EmeraldPowder
      @EmeraldPowder  4 года назад

      Смотря чем навмеш создаётся, если прям фризит и нет никакой асинхронной функции, то наверное не получится. А если есть какой-то вариант не блокировать основной поток, то можно показать полоску, даже если не знаем настоящий прогресс, просто сделать чтобы она двигалась с определённой скоростью, и к концу бара замедлялась

  • @user-qp5kz7fr5v
    @user-qp5kz7fr5v 3 года назад +1

    Какую IDE ты используешь?

  • @goodcontent-gcrussian4435
    @goodcontent-gcrussian4435 2 года назад +1

    14:06 принимает число от единицы до одного

  • @kyta1840
    @kyta1840 2 года назад

    Автор куда кидать menumanager?

  • @vefrex
    @vefrex 3 года назад +1

    С тобой можно стать настоящим программистом и получить приглашение от Rockstar games, Valve, Ubisoft, Electronic arts.

  • @MrKingofTiger
    @MrKingofTiger 4 года назад

    Unity использует .NET и у него интересный способ билдить. Он делает промежуточный код, а во время запуска он по сути компилирует проект. Это решает вопрос кроссплатформенности, но получается проблема первых загрузок. Типо запустил 1 раз - долго. На второй - уже быстро.

    • @EmeraldPowder
      @EmeraldPowder  4 года назад

      Может быть в этом дело. Хотя скриптов почти нет на той сцене, так что скорее всего это просто какие-то ассеты не выгрузились, потому что сцена меню почти ничего не содержит

  • @limitlessimagination8946
    @limitlessimagination8946 4 года назад +1

    Emerald Powder, а можешь сделать видео на одну тему? Я много где ищу, но нигде нету на это ответа, может ты знаешь? Можно ли в юнити, сделать перед возможность давать игроку выбирать, сколько ОЗУ выделить на работу игры(пример такого - это майнкрафт(больше я такого нигде не видел)). А в самой игре потом где-нибудь выводить то сколько ОЗУ по итогу выделено на игру, и сколько она потребляет в realtime.

    • @EmeraldPowder
      @EmeraldPowder  4 года назад

      Задавать скорее всего нельзя, это фишка java, чтобы в C#/Mono такое было я не слышал. А вот получить сколько используется скорее всего можно через стандартную библиотеку, наверное как-то так
      forum.unity.com/threads/how-to-get-entire-memory-usage-at-runtime-in-game-build.465564/

    • @limitlessimagination8946
      @limitlessimagination8946 4 года назад

      @@EmeraldPowder спасибо. Действительно, получилось через profiler вывести. Оказывается все было так просто.

  • @LEXYteam
    @LEXYteam 4 года назад

    Я всегда думал как игра понимает сколько ей осталось подгрузить ресурсов, когда рисуется прогресс бар. Оказывается довольно приблизительно. И у нас тут быстро скакнуло до 90% и немного подождало, а я видел плавные варианты. Значит оно зная, что ресурсы будут грузиться 3 сек + - брали и делали бар длительностью 5 сек например, и плавно рисовали прогресс бар, зная, что на загрузку нужно где-то 3 сек. В зависимости не от реального положения дел, а просто по времени.
    Очень интересно, но можно было немножко и помедленнее, на такой скорости не понятно то ли слушать и понимать о чем идет речь, то ли смотреть)
    Спасибо, одним вопросом стало меньше.

    • @LEXYteam
      @LEXYteam 2 года назад

      @Даниил Глаголев там же есть update и fixed update, если делать через апдейт, да оно может быть по разному, где-то быстрее, где-то медленнее. Через fixed update на любом компе будет одинаково, потому что там зависит не от частоты, а от времени. Так что можно какой-то средний промежуток подобрать и будет норм. Быстрый комп немножко подождет, у медленного полоса дойдет до конца и чуть позже будет переход.

  • @SmilleBuer
    @SmilleBuer 4 года назад

    я наверное никогда все же не стану кодером на Unity... (просто команды понимаю механику скрипта и так далее но как раставлять скобки и почему никак не допираю, максимум что получается учить это python так как их там меньше), но все равно спасибо за твои видео очень расслабляет и информативно! продолжай в том же духе!

    • @user-kn9jr4mw5o
      @user-kn9jr4mw5o 4 года назад +1

      А что не так со скобками?

    • @-unity-
      @-unity- 4 года назад +1

      @@user-kn9jr4mw5o да, действительно! Скобки - не самая сложная вещь в программировании.

  • @TimeToDie_G2
    @TimeToDie_G2 4 года назад +1

    Здравствуйте, помогите:
    Я хз как сделать чтобы включить скрипт через другой ( если объект исМаинд тоесть мой нужно включить скрипт движени)
    Помогите пожалуйста.
    Заранее спасибо.

    • @dipolare
      @dipolare 4 года назад

      Ты можешь создать переменную типа MonoBehaviour и поместить в неё скрипт, который нужно включить, а затем присвоить true свойству enabled этого MonoBehaviour.

    • @dipolare
      @dipolare 4 года назад

      Думаю, что есть способ лучше, но я такого пока не знаю)

  • @user-xo9ks9bc6j
    @user-xo9ks9bc6j 4 года назад

    если загрузка уровня предполагает время в 20-30 секунд.. я бы сделал экран инвентаря или какието дополнительные подсказки или хитрости для игрока. так игрок бы провёл это время с пользой. ещё можно сделать полет камеры гдето над облаками.. или ещё чтото. идей много

    • @EmeraldPowder
      @EmeraldPowder  4 года назад

      Кстати инвентарь интересная идея, нигде вроде бы такого не видел, но вещь была бы полезная игроку! Подсказки-советы это классика, да, они тоже хорошо смотрятся

  • @unitranslater
    @unitranslater Год назад

    Мне очень интересно как реализовать переход межу сценами как у God of War или третий асасин там во времяя загрузки сцены ы можешь бегать по определённой зоне слушать всекие реплики и тд

    • @EmeraldPowder
      @EmeraldPowder  Год назад +1

      По идее можно на этом экране загрузки любую мини- (или не мини) игру сделать. Но скорее всего она будет тормозить, по крайней мере если обычным юнитиевским LoadSceneAsync пользоваться

    • @unitranslater
      @unitranslater Год назад

      @@EmeraldPowder Может Unity не оптимизирована под данные задачи, а вот UE скорее всего подойдёт

  • @insaneone-7220
    @insaneone-7220 4 года назад

    Отличный ролик) Я бы предпочел просто крутилку на загрузочном экране сделать, т.к. возвращаемый Unity процент загрузки очень резко возрастает, и реальной информации о прогрессе загрузки игроку почти не даёт.

    • @EmeraldPowder
      @EmeraldPowder  4 года назад +1

      Спасибо! Да, если загрузка так как на видосе работает, то можно и крутилку. Но точно помню что у меня в каком-то старом проекте она прямо как часы прогресс возвращала, то ли там ассеты получились все похожего объёма, то ли просто разбиты на много файлов были
      P.S. канал у тебя годный)

    • @insaneone-7220
      @insaneone-7220 4 года назад

      @@EmeraldPowder да, наверное равномерно были распределены ресурсы, я на самом деле особо не вникал в алгоритм подгрузки данных, как-то не надо было)
      Спасибо за теплый отзыв по каналу)

  • @noneyaroslav3109
    @noneyaroslav3109 4 года назад

    Сделай гайд по рендерингу. ПЖ

  • @zloykaktus2729
    @zloykaktus2729 3 года назад

    Я 4 раза видео пересмотрел. У меня просто загружается сцена и нет никакой загрузки. Даже на милисекунду не появляется. Я не понимаю что не так.
    Я ведь по клику на кнопку должен вызывать метод
    " public void GoToGame()
    {
    SceneManager.LoadScene("Game");
    }"
    из MenuManager?

    • @mandrushe4ka
      @mandrushe4ka 2 года назад

      Вместо SceneManager ты добавляешь SceneTransition.SwitchToScene("Game");

  • @ricksmith2454
    @ricksmith2454 2 года назад

    А куда скрипт Menu Manager засунул никак не могу понять, скрипт который запускает смену сцен емае, целый день на это потратил

  • @nomad4435
    @nomad4435 4 года назад

    Надо было бы упомянуть что все файлы из папок Resourсes попадут в билд

  • @user-ee5jz3pq7d
    @user-ee5jz3pq7d 4 года назад

    Как идея насчет видеоуроков по Shader Graph Unity?

    • @EmeraldPowder
      @EmeraldPowder  4 года назад

      По нему у меня только старенький видос про пиксельный огонь, если придёт в голову какой-то крутой и оригинальный эффект - буду делать ещё

  • @MrKingofTiger
    @MrKingofTiger 4 года назад

    Здравствуйте. Встретился с задачей сделать плейлист с музыкой, который меняет музыку по окончанию на следующую или случайную в списке. Пару дней копаюсь в Гугле и на Ютубе и все только рассказывают как просто добавить музыку на сцену. У вас есть мысли по этому поводу или желание сделать ролик? Если есть материалы почитать, то с радостью ознакомлюсь

    • @EmeraldPowder
      @EmeraldPowder  4 года назад +1

      Можно просто использовать один AudioSource, навесить на него скрипт с массивом AudioClip'ов, и в этом скрипте в Update проверять, если этот AudioSource.isPlaying == false, задавать ему случайный трек и вызывать Play. И ещё убрать у него галочку loop, чтобы когда трек закончится, он остановился, и isPlaying стало false

    • @MrKingofTiger
      @MrKingofTiger 4 года назад

      @@EmeraldPowder Спасибо большое. Очень выручил

  • @sergeymild
    @sergeymild 3 года назад

    Есть вопрос, можно ли как то загрузить сцену с сервера и перейти в неё?

  • @user-me4fx2jv3m
    @user-me4fx2jv3m 3 года назад +1

    Спасибо тебе за такой ролик, сам бы точно не сделал) И немного критики, я думаю тебе стоит называть свои переменные немного покороче

  • @thv602
    @thv602 3 года назад +1

    добрый день! добавил ваш скрипт в свои сцены как описано в видео(код скопировал с гитхаба, объекты и префаб сделал, аниматор настроил). Переход из меню в игровую сцену работает, из игровой сцены обратно - нет. В режиме Game в Editore в иерархии появляется объект Menu(isLoading) и больше ничего не происходит. Ни ошибок ничего. При повторном нажатии на кнопку выхода - появляется второй такой же объект Menu(isLoading) в иерархии и ничего больше не происходит.
    Подскажите, в чем может быть проблема? Думал ошибка в синглтонах (левел контроллер реализован через синглтон), переписал ваш код на публичные классы с вызовом через гейм обджекты на сцене - все тоже самое.. Скорее всего что то с подгрузкой сцен через async, но знаний не хватает понять что именно идет не так.

    • @thv602
      @thv602 3 года назад +1

      почитал про синглтоны - проблема точно не в них. Проверю еще раз, возможно, где -о ошибся с названиями булевых операторов и где-то не срабатывает переключение.

    • @thv602
      @thv602 3 года назад +1

      не срабатывает триггер sceneOpening при переходе на новой сцене, не срабатывает функция в конце анимации.

  • @uranium1879
    @uranium1879 2 года назад

    2 раз при запуске сцены она просто не загружается написано is loading а не грузит, что делать?

    • @todokama502
      @todokama502 2 года назад

      привет, нашел решение?

  • @qnet1080
    @qnet1080 4 года назад

    Привет, вы очень хорошо объясняете. Спасибо за такой канал. Смотрю каждое видео и хоть знаю это материал, но каждый раз подчеркиваю что то новое. Однако можно более серьёзные вещи . Допустим не знаю как для других хотел бы послушать про шейдеры, про любые. Про arcore углубленно. Про методы редко используемые, лайфхаки, интересные алгоритмы.

    • @EmeraldPowder
      @EmeraldPowder  4 года назад +1

      Спасибо!
      Про шейдеры думаю будут ещё видосы, с ними много идей что можно сделать, и про всякие лайфхаки и методы много всего копится пока работаю с Юнити. Про arcore вот только ничего не знаю