Введение в unity addressables. Как интегрировать addressables в свою игру

  Рет қаралды 40,460

Максим Крюков

Максим Крюков

Күн бұрын

Пікірлер: 111
@tenko4647
@tenko4647 3 жыл бұрын
Как же круто, когда есть один полноценный видос, благодаря которому сложная тема через 17 минут становится понятной. Спасибо! Прям руки зачесались, пойду делать.
@sergeshautsou
@sergeshautsou 8 ай бұрын
Максим, огромное спасибо! Очень толково все объясняете и даете наиболее актуальную и ценную информацию.
@lomion46
@lomion46 3 жыл бұрын
Спасибо за видео! P.S.: удобства ради, при клике на группу/элемент в Group в контекстном меню есть опция Simplify Addressable Name, что убирает путь и оставляет только имя элемента, вместо того, чтобы каждый раз руками в инспекторе бахать.
@CoolinarGameDeveloper
@CoolinarGameDeveloper 3 жыл бұрын
Офигеть, как вовремя! Я как раз собирался разобраться в этом
@АлексХрапин
@АлексХрапин 3 жыл бұрын
А вот это интересная тема! Особенно в контексте полной разработки Tower Defense.
@AlekseyLoykuts
@AlekseyLoykuts 3 жыл бұрын
10:11 тут UIщиков немножко дернуло )) там же так хорошо 9slice ложиться... Спасибо за видео ) я пока половину не понял (слабо в асинк работе), но желание разобраться только усилилось
@jelewow962
@jelewow962 3 жыл бұрын
вижу Максима Крюкова, ставлю лайк не глядя
@andrewmad
@andrewmad 3 жыл бұрын
Весьма актуальная тема. Благодарю Максим!
@Elledan3101
@Elledan3101 2 жыл бұрын
Как всегда, невероятно полезный материал. Лайк@коммент в поддержку очень полезного канала!
@gameviewer5693
@gameviewer5693 3 жыл бұрын
Отличный урок,спасибо, жду продолжения!
@МихаилСанаев-с7ъ
@МихаилСанаев-с7ъ 3 жыл бұрын
Спасибо огромное! Очень полезная инфа, редко где найдешь такую на доступном языке. Осталось только применить в будущих проектах.
@kiteva7087
@kiteva7087 3 жыл бұрын
Спасибо, видео супер! А можешь еще про Zenject рассказать в одном из следующих видео?
@sergiuc3332
@sergiuc3332 3 жыл бұрын
Лучше создай для начало свой IoC, хоть и самый простой, чтобы понять как он работает, потом по немножку усложняй его, и тогда больше не будут такие просьбы, тогда поимешь где и как используется и главное для чего такое приспособление, а самое главное будешь понять где и когда стоит использовать а когда нет
@ruslan_yefimov
@ruslan_yefimov 3 жыл бұрын
@@sergiuc3332 Звучит просто, но Максим явно смог бы объяснить пару тонкостей, до которых самому дойти не так просто
@protudorin
@protudorin 3 жыл бұрын
Спасибо за объяснение! Как раз искал инфу по этой теме
@trell_7842
@trell_7842 3 жыл бұрын
О да, то что надо, спс.
@HadjimeSun
@HadjimeSun 3 жыл бұрын
Начало не плохое. Хочется как-то по глубже материал. Как лучше организовать группы. Какие есть подводные камни при организации групп(работа с атласами например и достаточно ли в группы добавить только атласы а сами спрайты не нужны?). Как лучше организовывать сцену(все сбросить на сцену и грузить только ее или по отдельности грузить префабы). Есть ли какие-нибудь паттерны для работы с addressables? Best practices.
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Неплохо вы хотите, это на сколько людей будет рассчитано? Максимум 1000
@HadjimeSun
@HadjimeSun 3 жыл бұрын
Искренне благодарю за предоставленный материал. Я хорошо понимаю на сколько это не легко. Unity особо не славится качественной документацией поэтому качественный материал думаю будет пользоваться спросом.
@mr.croller
@mr.croller Ай бұрын
​@@gaitavr1992Если сюда ответите, будем уже рады
@mr.croller
@mr.croller Ай бұрын
@@gaitavr1992 Были бы рады если даже тут рекомендации дадите. Вопрос действительно актуальный при использовании addressables
@VADIM-SOLOV
@VADIM-SOLOV 3 жыл бұрын
Спасибо за видео! Очень интересная тема :)
@alexsklyarov6792
@alexsklyarov6792 3 жыл бұрын
Класс, спасибо))). Про ECS запиши (LeoECS например)
@sergiuc3332
@sergiuc3332 3 жыл бұрын
A там все очень просто, на его основе можно написать свой ecs, еще проще еще лучше. Самый перспективный ecs это ecs от unity, там оптимизация на уровне ядра, там прям видно что написали профессионалы, если присмотрется к исходникам
@PavelStr-x5w
@PavelStr-x5w 2 жыл бұрын
Спасибо за урок !!)
@midompany6121
@midompany6121 3 жыл бұрын
Макс спс за видосы!)
@mdvulfix
@mdvulfix 3 жыл бұрын
Супер, спасибо!
@vladyslavhorbatiuk3089
@vladyslavhorbatiuk3089 3 жыл бұрын
Ну ты просто лучший!
@bigbluepie8983
@bigbluepie8983 2 жыл бұрын
Круто, но чет я поплыл, для меня сложно)
@romansalnikov5079
@romansalnikov5079 3 жыл бұрын
Полезное видео, спасибо. Сразу в глаза кинулся несуразный трудновоспринимаемый шрифт "Maybe recources or Streaming Assets", ну в принципе как и остальные похожие надписи. Ну это так, чисто фидбек
@gaitavr1992
@gaitavr1992 3 жыл бұрын
А мне он как-то понравился своей нестрогостью)
@rdragon587
@rdragon587 3 жыл бұрын
Cool) Thanks)
@vladimirlatyshev7181
@vladimirlatyshev7181 2 жыл бұрын
Доброго времени суток! Не нашёл нигде контактов, чтобы задать вам вопрос, поэтому напишу здесь). В январе вы выступали на конференции с этой же темой и там озвучили, что вы закачиваете, помимо бандлов, ещё и Dll. Так вот вопросы, будет ли это работать при сборке на WebGL, как вообще вы интерпретируете эти dll, и как же политика сторов о том, что нельзя добавлять новый функционал (код) без пересборки билда и опрува от них?
@kingofbattleonline
@kingofbattleonline 3 жыл бұрын
Максим Крюков, здравствуйте. Пожалуйста, снимите урок по тому как UI должен отслеживать информацию о игроке, который сравниться на сцене?
@DmitryTrump
@DmitryTrump 3 жыл бұрын
Привет. Не даёшь частные уроки ?
@user-oz2eg7zr2c
@user-oz2eg7zr2c 2 жыл бұрын
Расскажите, пожалуйста, как вы реализуете паузу. В одном из видео я слышал, что вы делаете это через интерфейс
@MrFtik
@MrFtik 3 жыл бұрын
Спасибо!
@Bardsfails
@Bardsfails 3 жыл бұрын
Отличное видео!
@lnPower
@lnPower 3 жыл бұрын
Максим, спасибо вам за полезную информацию на канале. У меня просьба раскрыть тему удаленной загрузки пакетов обновлений,с addressable или без, на примере Azure или того что вы используете повсеместно,хочется вырваться за рамки локальной сети, но нет базы, спасибо.
@pavelmykutsky1098
@pavelmykutsky1098 3 жыл бұрын
Видосик о Zenject можно?
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Позже
@guiltyshoes
@guiltyshoes 3 жыл бұрын
Пока не очень понимаю, в чем радикальное преимущество этой системы перед ассет бандлами? upd: сделай видео про работу в команде, какую систему контроля версий использовать, как мержить изменения в сценах и префабах, какой должна быть структура проекта итд.
@МихаилСуворов-к2щ
@МихаилСуворов-к2щ 3 жыл бұрын
Он же сказал что это надстрока над ассет бандлами. Так что это по сути работа с ассет бандлами. И собственного опыта добавлю что тут есть один большой плюс в том что если ты проект изначально будешь делать используя Addressables, то потом перенести часть контента на сервер будет легко - в несколько кликов + прописать адрес сервер.
@chesukineyznalipahana
@chesukineyznalipahana 3 жыл бұрын
@@МихаилСуворов-к2щ Интересно по какому принципу работает эта система, есть например бандл, который содержит много моделек окружения, который мы хотим подгрузить в режиме реального времени в игру. Возможно ли в данном случае делать не полную загрузку бандла, а лишь подгрузку заголовков пакета, чтобы в дальнейшем загружать и выгружать лишь с одного условного бандла ресурсы по мере необходимости? Если я правильно понял, Addressable и выполняет эту задачу в автоматическом режиме. Я еще досконально не ковырял систему поэтому если не прав - поправьте. Далее, если это надстройка над обычными asset bundle не могут ли быть проблемы с подгрузкой больших локаций в реальном времени? В классических asset bundle нету возможности грузить бандл не целиком а только по заголовкам и дергать с него необходимые ресурсы используя заголовок, а так же он по какой то причине использовал раньше основной поток приложения, из за чего часто бывают микрофризы, при вызове функции начинается загрузка бандла целиком, причем не зависимо от размера бандла у меня были микрофризы при асинхронном выполнении. Но, тестировал я очень давно, возможно это пофиксили. Интересно как оно отработает к примеру, в условиях, когда в одном бандле различных файлов много и требуется их загружать реалтайм, например пока бежит игрок в шутере, для того чтобы сделать бесшовный большой мир и экономить оперативную память устройства. Ибо в задачах по типу простой реализации DLC это никогда не было проблемой, даже при использовании классических asset bundle, интересно как система отработает в задачах посложнее.
@animagnoa
@animagnoa 3 жыл бұрын
хорошая тема, но addressables это панацея?
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Ассет бандлы вполне можно использовать
@ilgiz2616
@ilgiz2616 3 жыл бұрын
Видео супер. Но если есть возможность раскрыть бы тему адресаблов более широко )
@ВасилийМигулин-т1й
@ВасилийМигулин-т1й 3 ай бұрын
Почему addressables не работает с WebGl
@WBlackX
@WBlackX 3 жыл бұрын
Мои благодарности, оставляю комент для активности. И по совместительству актуальный для меня вопрос, а можно ли как-то подружить систему адресаблов, с системой АБ тестов?
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Например?
@WBlackX
@WBlackX 3 жыл бұрын
Нужна возможность на горячую засплитовать любой указанный ассет, который изначально предполагался один. Как я понимаю нужна либо возможность вводить какие-то дополнительные варианты в ассет, потипу бандл вариантов, либо возможность создавать дополнительные группы между релизами, и в коде амортизировать работу с этим.
@luchacorporation784
@luchacorporation784 3 жыл бұрын
Не знаю что ты имеешь в виду под подружить, разве они как-то могут мешать друг другу. Ещё зависит конечно от системы АБ тестов. У нас например только один раз был опыт работы с АБ тестами и система была в виде статического конфига, для скорости. И тут адресаблы как раз подходят, условно если тестируется разный визуал, то загружать определенные ресурсы в зависимости от когорты игроков
@WBlackX
@WBlackX 3 жыл бұрын
Я имею в виду гибкую систему АБ тестов, где не какой-то занный конфигом адресабл ассет подменяется кодом через ифчик, а любой ассет подгружаемый через адресаблы, может быть полменё в любом АБ тесте который может быть сконфигурирован и запущен без релиза. Я полагаю для этого над адресаблами свою обёрточку написать придётся, а по другому вроде ни как.
@Frozo13
@Frozo13 3 жыл бұрын
Будет ли видео по zenject?
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Будет внедрение в tower defense точно
@naxa1ka
@naxa1ka 3 жыл бұрын
Круто как всегда, ревью кода когда добивать собираетесь?)
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Скоро, многие соскучились за обычными видео
@bkWorm-gx2pi
@bkWorm-gx2pi 2 жыл бұрын
Bundles грузятся при каждом запуске игры или достаточно одной загрузки и они останутся в проекте?
@gaitavr1992
@gaitavr1992 2 жыл бұрын
На диске останутся, потом займет немного времени для загрузки в оперативную память
@evilvirraZzz
@evilvirraZzz 3 жыл бұрын
Максим, видео класс. Надо будет пересмотреть ещё раз потом :D. У меня вопрос, скрипты в addressables тоже можно включать? Или только графическая часть приложения?
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Можно включать, но там много нюансов
@Codirable
@Codirable 3 жыл бұрын
@@gaitavr1992 Скрипты, которые есть в билде, могут висеть на game objects. Но при этом новые скрипты добавить не получиться. Собственно как с кастомной загрузкой Asset Bundles
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Дубликаты из разных проектов тоже будут работать
@Codirable
@Codirable 3 жыл бұрын
@@gaitavr1992 Снова я не понимаю о чем речь :0) Какие дубликаты?
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Одинаковые скрипты в разных юнити проектах
@neverworld8815
@neverworld8815 2 жыл бұрын
Хороший ролик и полезная система, только я не совсем могу понять, может ли она заменить создание пула объектов ? Если например на сцене будет 800 объектов, их лучше инстансить из ассетов, или всё-таки хранить как выключенные статичные в массивах или листах ? Если время жизни объектов фиксированное и они интенсивно будут пропадать и появляться
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Для всего применять адрессеблы не нужно
@Saltant
@Saltant 2 жыл бұрын
Я так понимаю, Addressables в WebGL билде работать не будет?
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Ни разу не пробовал
@Saltant
@Saltant 2 жыл бұрын
@@gaitavr1992 Так как в webgl нету асинхронности, тасков, то полагаю Addressables не заюзать и придется работать по старинке.
@mariacho8174
@mariacho8174 3 жыл бұрын
Доброго дня, Максим! Отличное видео, единственное, что у меня вызвало вопрос, вы постоянно в группах отключаете галочку на "Include in build", но это относится непосредственно к сборке ассетов, а не включению их в билд приложения!
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Проверю этот момент, спасибо
@EduardMalxa
@EduardMalxa 2 жыл бұрын
да вы правы так и есть! я проверил "Include in build" не связано с билдом, когда вставлена remote автоматом ничего не заходит в билд всё через сервер
@ko-games7768
@ko-games7768 3 жыл бұрын
А как реализовать такую задачу. Есть две сцены на одной сцене есть объект на второй сцене есть канвас с полоской жизни теперь когда с первой сцены объект перекидывается на вторую сцену он автоматом находит полоску жизни. Как это восоздать?
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Я не вижу проблемы, скрипты же живут в это время
@ko-games7768
@ko-games7768 3 жыл бұрын
@@gaitavr1992 Для меня это проблема я только начинаю изучать C# и Юнити и немогу понять как такое реализовать.
@ИгорьМорозов-ы2ы
@ИгорьМорозов-ы2ы 3 жыл бұрын
@@ko-games7768 Сохранить состояние объекта в конце первого уровня. Загрузить на втором. (как вариант).
@thewebsapiens
@thewebsapiens 2 жыл бұрын
А все эти async работают уже в однопоточном WebGL? Вроде же нет.
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Юзайте unitask, там один поток всегда
@РоманКривжа
@РоманКривжа 3 жыл бұрын
Есть еще вопрос. А как хранятся ссылки на обычные префабы? Например, у меня есть две ссылки на один и тот же префаб или ресурс (текстура или звуковая дорожка). По идее в оперативной памяти должны храниться две ссылки на один и тот же ресурс, тем самым предотвращается дублирование данных. Это так или нет? На просторах интернета не смог найти ответа.
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Да, дублирования не будет
@ValeGoG
@ValeGoG 3 жыл бұрын
10/10
@AndreyKho232
@AndreyKho232 3 жыл бұрын
а если ассетов очень много? скорее всего и каталог будет большой, который придется скачивать заного каждый раз, когда что-то поменялось.
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Каталог весит копейки
@СергейДуванов-г2д
@СергейДуванов-г2д 3 жыл бұрын
Один я не понял в чем отличие от обычной загрузки asset bundles?
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Зависимости будут грузиться сами, мы решаем это на уровне конфигурации групп
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Плюс каталоги, их бывает несколько штук из разных проектов и все мерджаться в один
@РоманКривжа
@РоманКривжа 3 жыл бұрын
Спасибо за ролик. Очень полезный. У меня вопрос. Ситуация: - я загружаю из адресаблов некий ресурс, например префаб, получаю ссылку на ресурс, назову ее "Х"; - делаю "Instantiate" этого префаба; - выгружаю из памяти ссылку "Х"; Что теперь будет с созданным префабом? Он останется в сцене или ссылку нам нужно хранить на протяжении всей жизни созданного префаба?
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Ссылку я всегда храню, мне и самому интересно, что будет. Попробуйте выгрузить, я думаю счетчик ссылок не позволит сломать
@ivanfilatov5482
@ivanfilatov5482 4 ай бұрын
Ничо не понял, но оч интересно
@askaranarbekov3145
@askaranarbekov3145 3 жыл бұрын
Сложно понять когда не шаришь в потоках)))
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Это не потоки, посмотрите видео о тасках на канале
@tarasklymenko5211
@tarasklymenko5211 2 жыл бұрын
Ваш метод работает только с GameObject, но возможно ли грузить в рантайме AudioClip или Sprites ? в последней документации версии 1.19 addressables показан пример работы с GameObject, ни слово про обычные ассеты
@gaitavr1992
@gaitavr1992 2 жыл бұрын
Можно грузить и их
@NoOne-ov5ku
@NoOne-ov5ku 2 жыл бұрын
У меня пока не вышло получить спрайт через метод InstantiateAsync, выдавал ошибку «Key exists as Type=UnityEngine.Texture2D», но я выкрутился по другому, инстанцировал AssetReference и в конструктор скормил assetId (var assetReference = new AssetReference(assetId);), и похожим способом вызвал Addressables.LoadAssetAsync(assetReference) вместо InstantiateAsync, также с помощью await handle.Task получил Texture2D, и просто использовал Sprite.Create для создания спрайта. Тут может есть более простое решение, если кто знает поделитесь. Я думаю суть в том что Sprite это компонент, а Sprite (2D and UI) в Texture Type, это всё же другое, потому получается загрузить только Texture2D.
@MANDRAGORA_
@MANDRAGORA_ 3 жыл бұрын
Круто)) Ты лучше всех!!! Кто согласен?? Всем Привет! Меня зовут Мандаринка Mincraft! Я ищу людей для совместной игры на Minecraft 1.18.1. серверах; жду вас. Если ты согласен.
@usmax
@usmax 3 жыл бұрын
Согласен, но играть не пойду
@EduardMalxa
@EduardMalxa 3 жыл бұрын
+
@MeaNX
@MeaNX 3 жыл бұрын
Вот почему игра Valheim мало весит
@SerhiiBlender
@SerhiiBlender Жыл бұрын
Уже не актуально ;) Нужно обновлять контент.
@Worlfable
@Worlfable Жыл бұрын
Дорохие храждане, сещас мы будем делать все ихры.
@VitalSchool
@VitalSchool 3 жыл бұрын
Это вы так пошутили? Не разобрано ни одного вопроса по этой теме. Как грузить и выгружать, и так понятно. Более актуальные вопросы это: 1) Как указать в Unity директорию, куда класть скомпилированные ресурсы 2) Как указать директорию, откуда брать ресурсы для создания билда 3) Как указать директорию, откуда будут читаться ресурсы после установки 4) Как из программы получить полный путь к этой директории 5) Как на Android указать короткий путь к папке откуда запускается приложение (Типа .\paapath\XXX Как оно выглядит на Android?) 6) Как скомпилировать 1 новый ресурс в Addressabbles 7) Как переписать русурс по пункту 6. вручную, что бы его могло загрузить УЖЕ установленное приложение. 8) Как изменить уже имеющийся ресурс в установленном приложении 9) Чем отличаются BuildPath и LoadPath в группе adressables и в настройках Addressabbles? 10) При выполнении LoadAssetAsync полностью перекрывается поток приложения, почему? (Это касается всего из чего бы не выполнялось корутина, Await и тд) 11) Если грузить сцену асинхронно, почему виснет поток намерво, пока полностью не загрузит? 12) Как остледить что делает на текущий момент асинхронная функция 13) Что такое DontDestroyOnLoad? А не та бесполезная муть в видео. Я поражаюсь комментариям ниже, покупные что ли?
@gaitavr1992
@gaitavr1992 3 жыл бұрын
Да я всех купил, сколько вам заплатить за положительный отзыв?)
@gaitavr1992
@gaitavr1992 3 жыл бұрын
А если серьёзно, то название видео читали? Какой андроид и потоки? И кстати, ни на одном проекте у меня поток не вис. Так что можете взять свой список и написать по нему статью с пруфами. Если желания делиться информацией нет, то увы, развлекайтесь в комментариях дальше
@VitalSchool
@VitalSchool 3 жыл бұрын
@@gaitavr1992 Простите, просто наболело, я пояснил на GD почему. В том-то и дело, что если бы я мог бы на них ответить я бы вместо наездов написал бы ответы, что бы об этом хоть где-то информация была. У вас интересные видео, а тут тема актуальная, очень актуальная, но самого главного нет! Смотря ваши видео, мне все нравится, а в данном случае, как будто послали. Я готов поделиться информацией любой, той что знаю, но от нее толку не больше чем от видео. Вы сами можете провести эксперимент. Включите галку разделять ресурсы при компиляции и вас ждет сюрприз - если, например, сцену добавить в addressables, она не загрузится (по крайней мере на андройде). В связи с этим, вопроc выше, как указать путь? Ну и так далее. Цель-то сделать не отдельно единично загружаемые ресурсы, а полную динамическую подгрузку всего с адекватной архитектурой и хранением данных. Я понимаю, что никто этим не замарачивается, но не понимаю почему?
@gaitavr1992
@gaitavr1992 3 жыл бұрын
У меня в рабочем проекте очень много сцен, которые пакуются отдельно. Все работает на андроиде
How to do pause in unity3D
8:55
Максим Крюков
Рет қаралды 18 М.
Giving Personality to Procedural Animations using Math
15:30
t3ssel8r
Рет қаралды 2,7 МЛН
The Lost World: Living Room Edition
0:46
Daniel LaBelle
Рет қаралды 27 МЛН
Andro, ELMAN, TONI, MONA - Зари (Official Audio)
2:53
RAAVA MUSIC
Рет қаралды 8 МЛН
Вопрос Ребром - Джиган
43:52
Gazgolder
Рет қаралды 3,8 МЛН
Unreal Engine: система игровых фаз, как в Batman Arkham
27:38
Natatem00\Программирование
Рет қаралды 437
Введение в addressables
28:24
Unity Оk
Рет қаралды 6 М.
⚡ Всё про события в Unity 3D
21:38
Emerald Powder
Рет қаралды 110 М.
ООП вопросы на юнити собеседовании
14:11
Максим Крюков
Рет қаралды 44 М.
ВСЕ ПРО АСИНХРОННОСЬ В UNITY! Ч.1. От корутин до async/await и UniTask
16:28
Unity async / await: Coroutine's Hot Sister [C# & Unity]
16:18
The Lost World: Living Room Edition
0:46
Daniel LaBelle
Рет қаралды 27 МЛН