Как же круто, когда есть один полноценный видос, благодаря которому сложная тема через 17 минут становится понятной. Спасибо! Прям руки зачесались, пойду делать.
@sergeshautsou8 ай бұрын
Максим, огромное спасибо! Очень толково все объясняете и даете наиболее актуальную и ценную информацию.
@lomion463 жыл бұрын
Спасибо за видео! P.S.: удобства ради, при клике на группу/элемент в Group в контекстном меню есть опция Simplify Addressable Name, что убирает путь и оставляет только имя элемента, вместо того, чтобы каждый раз руками в инспекторе бахать.
@CoolinarGameDeveloper3 жыл бұрын
Офигеть, как вовремя! Я как раз собирался разобраться в этом
@АлексХрапин3 жыл бұрын
А вот это интересная тема! Особенно в контексте полной разработки Tower Defense.
@AlekseyLoykuts3 жыл бұрын
10:11 тут UIщиков немножко дернуло )) там же так хорошо 9slice ложиться... Спасибо за видео ) я пока половину не понял (слабо в асинк работе), но желание разобраться только усилилось
@jelewow9623 жыл бұрын
вижу Максима Крюкова, ставлю лайк не глядя
@andrewmad3 жыл бұрын
Весьма актуальная тема. Благодарю Максим!
@Elledan31012 жыл бұрын
Как всегда, невероятно полезный материал. Лайк@коммент в поддержку очень полезного канала!
@gameviewer56933 жыл бұрын
Отличный урок,спасибо, жду продолжения!
@МихаилСанаев-с7ъ3 жыл бұрын
Спасибо огромное! Очень полезная инфа, редко где найдешь такую на доступном языке. Осталось только применить в будущих проектах.
@kiteva70873 жыл бұрын
Спасибо, видео супер! А можешь еще про Zenject рассказать в одном из следующих видео?
@sergiuc33323 жыл бұрын
Лучше создай для начало свой IoC, хоть и самый простой, чтобы понять как он работает, потом по немножку усложняй его, и тогда больше не будут такие просьбы, тогда поимешь где и как используется и главное для чего такое приспособление, а самое главное будешь понять где и когда стоит использовать а когда нет
@ruslan_yefimov3 жыл бұрын
@@sergiuc3332 Звучит просто, но Максим явно смог бы объяснить пару тонкостей, до которых самому дойти не так просто
@protudorin3 жыл бұрын
Спасибо за объяснение! Как раз искал инфу по этой теме
@trell_78423 жыл бұрын
О да, то что надо, спс.
@HadjimeSun3 жыл бұрын
Начало не плохое. Хочется как-то по глубже материал. Как лучше организовать группы. Какие есть подводные камни при организации групп(работа с атласами например и достаточно ли в группы добавить только атласы а сами спрайты не нужны?). Как лучше организовывать сцену(все сбросить на сцену и грузить только ее или по отдельности грузить префабы). Есть ли какие-нибудь паттерны для работы с addressables? Best practices.
@gaitavr19923 жыл бұрын
Неплохо вы хотите, это на сколько людей будет рассчитано? Максимум 1000
@HadjimeSun3 жыл бұрын
Искренне благодарю за предоставленный материал. Я хорошо понимаю на сколько это не легко. Unity особо не славится качественной документацией поэтому качественный материал думаю будет пользоваться спросом.
@mr.crollerАй бұрын
@@gaitavr1992Если сюда ответите, будем уже рады
@mr.crollerАй бұрын
@@gaitavr1992 Были бы рады если даже тут рекомендации дадите. Вопрос действительно актуальный при использовании addressables
@VADIM-SOLOV3 жыл бұрын
Спасибо за видео! Очень интересная тема :)
@alexsklyarov67923 жыл бұрын
Класс, спасибо))). Про ECS запиши (LeoECS например)
@sergiuc33323 жыл бұрын
A там все очень просто, на его основе можно написать свой ecs, еще проще еще лучше. Самый перспективный ecs это ecs от unity, там оптимизация на уровне ядра, там прям видно что написали профессионалы, если присмотрется к исходникам
@PavelStr-x5w2 жыл бұрын
Спасибо за урок !!)
@midompany61213 жыл бұрын
Макс спс за видосы!)
@mdvulfix3 жыл бұрын
Супер, спасибо!
@vladyslavhorbatiuk30893 жыл бұрын
Ну ты просто лучший!
@bigbluepie89832 жыл бұрын
Круто, но чет я поплыл, для меня сложно)
@romansalnikov50793 жыл бұрын
Полезное видео, спасибо. Сразу в глаза кинулся несуразный трудновоспринимаемый шрифт "Maybe recources or Streaming Assets", ну в принципе как и остальные похожие надписи. Ну это так, чисто фидбек
@gaitavr19923 жыл бұрын
А мне он как-то понравился своей нестрогостью)
@rdragon5873 жыл бұрын
Cool) Thanks)
@vladimirlatyshev71812 жыл бұрын
Доброго времени суток! Не нашёл нигде контактов, чтобы задать вам вопрос, поэтому напишу здесь). В январе вы выступали на конференции с этой же темой и там озвучили, что вы закачиваете, помимо бандлов, ещё и Dll. Так вот вопросы, будет ли это работать при сборке на WebGL, как вообще вы интерпретируете эти dll, и как же политика сторов о том, что нельзя добавлять новый функционал (код) без пересборки билда и опрува от них?
@kingofbattleonline3 жыл бұрын
Максим Крюков, здравствуйте. Пожалуйста, снимите урок по тому как UI должен отслеживать информацию о игроке, который сравниться на сцене?
@DmitryTrump3 жыл бұрын
Привет. Не даёшь частные уроки ?
@user-oz2eg7zr2c2 жыл бұрын
Расскажите, пожалуйста, как вы реализуете паузу. В одном из видео я слышал, что вы делаете это через интерфейс
@MrFtik3 жыл бұрын
Спасибо!
@Bardsfails3 жыл бұрын
Отличное видео!
@lnPower3 жыл бұрын
Максим, спасибо вам за полезную информацию на канале. У меня просьба раскрыть тему удаленной загрузки пакетов обновлений,с addressable или без, на примере Azure или того что вы используете повсеместно,хочется вырваться за рамки локальной сети, но нет базы, спасибо.
@pavelmykutsky10983 жыл бұрын
Видосик о Zenject можно?
@gaitavr19923 жыл бұрын
Позже
@guiltyshoes3 жыл бұрын
Пока не очень понимаю, в чем радикальное преимущество этой системы перед ассет бандлами? upd: сделай видео про работу в команде, какую систему контроля версий использовать, как мержить изменения в сценах и префабах, какой должна быть структура проекта итд.
@МихаилСуворов-к2щ3 жыл бұрын
Он же сказал что это надстрока над ассет бандлами. Так что это по сути работа с ассет бандлами. И собственного опыта добавлю что тут есть один большой плюс в том что если ты проект изначально будешь делать используя Addressables, то потом перенести часть контента на сервер будет легко - в несколько кликов + прописать адрес сервер.
@chesukineyznalipahana3 жыл бұрын
@@МихаилСуворов-к2щ Интересно по какому принципу работает эта система, есть например бандл, который содержит много моделек окружения, который мы хотим подгрузить в режиме реального времени в игру. Возможно ли в данном случае делать не полную загрузку бандла, а лишь подгрузку заголовков пакета, чтобы в дальнейшем загружать и выгружать лишь с одного условного бандла ресурсы по мере необходимости? Если я правильно понял, Addressable и выполняет эту задачу в автоматическом режиме. Я еще досконально не ковырял систему поэтому если не прав - поправьте. Далее, если это надстройка над обычными asset bundle не могут ли быть проблемы с подгрузкой больших локаций в реальном времени? В классических asset bundle нету возможности грузить бандл не целиком а только по заголовкам и дергать с него необходимые ресурсы используя заголовок, а так же он по какой то причине использовал раньше основной поток приложения, из за чего часто бывают микрофризы, при вызове функции начинается загрузка бандла целиком, причем не зависимо от размера бандла у меня были микрофризы при асинхронном выполнении. Но, тестировал я очень давно, возможно это пофиксили. Интересно как оно отработает к примеру, в условиях, когда в одном бандле различных файлов много и требуется их загружать реалтайм, например пока бежит игрок в шутере, для того чтобы сделать бесшовный большой мир и экономить оперативную память устройства. Ибо в задачах по типу простой реализации DLC это никогда не было проблемой, даже при использовании классических asset bundle, интересно как система отработает в задачах посложнее.
@animagnoa3 жыл бұрын
хорошая тема, но addressables это панацея?
@gaitavr19923 жыл бұрын
Ассет бандлы вполне можно использовать
@ilgiz26163 жыл бұрын
Видео супер. Но если есть возможность раскрыть бы тему адресаблов более широко )
@ВасилийМигулин-т1й3 ай бұрын
Почему addressables не работает с WebGl
@WBlackX3 жыл бұрын
Мои благодарности, оставляю комент для активности. И по совместительству актуальный для меня вопрос, а можно ли как-то подружить систему адресаблов, с системой АБ тестов?
@gaitavr19923 жыл бұрын
Например?
@WBlackX3 жыл бұрын
Нужна возможность на горячую засплитовать любой указанный ассет, который изначально предполагался один. Как я понимаю нужна либо возможность вводить какие-то дополнительные варианты в ассет, потипу бандл вариантов, либо возможность создавать дополнительные группы между релизами, и в коде амортизировать работу с этим.
@luchacorporation7843 жыл бұрын
Не знаю что ты имеешь в виду под подружить, разве они как-то могут мешать друг другу. Ещё зависит конечно от системы АБ тестов. У нас например только один раз был опыт работы с АБ тестами и система была в виде статического конфига, для скорости. И тут адресаблы как раз подходят, условно если тестируется разный визуал, то загружать определенные ресурсы в зависимости от когорты игроков
@WBlackX3 жыл бұрын
Я имею в виду гибкую систему АБ тестов, где не какой-то занный конфигом адресабл ассет подменяется кодом через ифчик, а любой ассет подгружаемый через адресаблы, может быть полменё в любом АБ тесте который может быть сконфигурирован и запущен без релиза. Я полагаю для этого над адресаблами свою обёрточку написать придётся, а по другому вроде ни как.
@Frozo133 жыл бұрын
Будет ли видео по zenject?
@gaitavr19923 жыл бұрын
Будет внедрение в tower defense точно
@naxa1ka3 жыл бұрын
Круто как всегда, ревью кода когда добивать собираетесь?)
@gaitavr19923 жыл бұрын
Скоро, многие соскучились за обычными видео
@bkWorm-gx2pi2 жыл бұрын
Bundles грузятся при каждом запуске игры или достаточно одной загрузки и они останутся в проекте?
@gaitavr19922 жыл бұрын
На диске останутся, потом займет немного времени для загрузки в оперативную память
@evilvirraZzz3 жыл бұрын
Максим, видео класс. Надо будет пересмотреть ещё раз потом :D. У меня вопрос, скрипты в addressables тоже можно включать? Или только графическая часть приложения?
@gaitavr19923 жыл бұрын
Можно включать, но там много нюансов
@Codirable3 жыл бұрын
@@gaitavr1992 Скрипты, которые есть в билде, могут висеть на game objects. Но при этом новые скрипты добавить не получиться. Собственно как с кастомной загрузкой Asset Bundles
@gaitavr19923 жыл бұрын
Дубликаты из разных проектов тоже будут работать
@Codirable3 жыл бұрын
@@gaitavr1992 Снова я не понимаю о чем речь :0) Какие дубликаты?
@gaitavr19923 жыл бұрын
Одинаковые скрипты в разных юнити проектах
@neverworld88152 жыл бұрын
Хороший ролик и полезная система, только я не совсем могу понять, может ли она заменить создание пула объектов ? Если например на сцене будет 800 объектов, их лучше инстансить из ассетов, или всё-таки хранить как выключенные статичные в массивах или листах ? Если время жизни объектов фиксированное и они интенсивно будут пропадать и появляться
@gaitavr19922 жыл бұрын
Для всего применять адрессеблы не нужно
@Saltant2 жыл бұрын
Я так понимаю, Addressables в WebGL билде работать не будет?
@gaitavr19922 жыл бұрын
Ни разу не пробовал
@Saltant2 жыл бұрын
@@gaitavr1992 Так как в webgl нету асинхронности, тасков, то полагаю Addressables не заюзать и придется работать по старинке.
@mariacho81743 жыл бұрын
Доброго дня, Максим! Отличное видео, единственное, что у меня вызвало вопрос, вы постоянно в группах отключаете галочку на "Include in build", но это относится непосредственно к сборке ассетов, а не включению их в билд приложения!
@gaitavr19923 жыл бұрын
Проверю этот момент, спасибо
@EduardMalxa2 жыл бұрын
да вы правы так и есть! я проверил "Include in build" не связано с билдом, когда вставлена remote автоматом ничего не заходит в билд всё через сервер
@ko-games77683 жыл бұрын
А как реализовать такую задачу. Есть две сцены на одной сцене есть объект на второй сцене есть канвас с полоской жизни теперь когда с первой сцены объект перекидывается на вторую сцену он автоматом находит полоску жизни. Как это восоздать?
@gaitavr19923 жыл бұрын
Я не вижу проблемы, скрипты же живут в это время
@ko-games77683 жыл бұрын
@@gaitavr1992 Для меня это проблема я только начинаю изучать C# и Юнити и немогу понять как такое реализовать.
@ИгорьМорозов-ы2ы3 жыл бұрын
@@ko-games7768 Сохранить состояние объекта в конце первого уровня. Загрузить на втором. (как вариант).
@thewebsapiens2 жыл бұрын
А все эти async работают уже в однопоточном WebGL? Вроде же нет.
@gaitavr19922 жыл бұрын
Юзайте unitask, там один поток всегда
@РоманКривжа3 жыл бұрын
Есть еще вопрос. А как хранятся ссылки на обычные префабы? Например, у меня есть две ссылки на один и тот же префаб или ресурс (текстура или звуковая дорожка). По идее в оперативной памяти должны храниться две ссылки на один и тот же ресурс, тем самым предотвращается дублирование данных. Это так или нет? На просторах интернета не смог найти ответа.
@gaitavr19923 жыл бұрын
Да, дублирования не будет
@ValeGoG3 жыл бұрын
10/10
@AndreyKho2323 жыл бұрын
а если ассетов очень много? скорее всего и каталог будет большой, который придется скачивать заного каждый раз, когда что-то поменялось.
@gaitavr19923 жыл бұрын
Каталог весит копейки
@СергейДуванов-г2д3 жыл бұрын
Один я не понял в чем отличие от обычной загрузки asset bundles?
@gaitavr19923 жыл бұрын
Зависимости будут грузиться сами, мы решаем это на уровне конфигурации групп
@gaitavr19923 жыл бұрын
Плюс каталоги, их бывает несколько штук из разных проектов и все мерджаться в один
@РоманКривжа3 жыл бұрын
Спасибо за ролик. Очень полезный. У меня вопрос. Ситуация: - я загружаю из адресаблов некий ресурс, например префаб, получаю ссылку на ресурс, назову ее "Х"; - делаю "Instantiate" этого префаба; - выгружаю из памяти ссылку "Х"; Что теперь будет с созданным префабом? Он останется в сцене или ссылку нам нужно хранить на протяжении всей жизни созданного префаба?
@gaitavr19923 жыл бұрын
Ссылку я всегда храню, мне и самому интересно, что будет. Попробуйте выгрузить, я думаю счетчик ссылок не позволит сломать
@ivanfilatov54824 ай бұрын
Ничо не понял, но оч интересно
@askaranarbekov31453 жыл бұрын
Сложно понять когда не шаришь в потоках)))
@gaitavr19923 жыл бұрын
Это не потоки, посмотрите видео о тасках на канале
@tarasklymenko52112 жыл бұрын
Ваш метод работает только с GameObject, но возможно ли грузить в рантайме AudioClip или Sprites ? в последней документации версии 1.19 addressables показан пример работы с GameObject, ни слово про обычные ассеты
@gaitavr19922 жыл бұрын
Можно грузить и их
@NoOne-ov5ku2 жыл бұрын
У меня пока не вышло получить спрайт через метод 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_3 жыл бұрын
Круто)) Ты лучше всех!!! Кто согласен?? Всем Привет! Меня зовут Мандаринка Mincraft! Я ищу людей для совместной игры на Minecraft 1.18.1. серверах; жду вас. Если ты согласен.
@usmax3 жыл бұрын
Согласен, но играть не пойду
@EduardMalxa3 жыл бұрын
+
@MeaNX3 жыл бұрын
Вот почему игра Valheim мало весит
@SerhiiBlender Жыл бұрын
Уже не актуально ;) Нужно обновлять контент.
@Worlfable Жыл бұрын
Дорохие храждане, сещас мы будем делать все ихры.
@VitalSchool3 жыл бұрын
Это вы так пошутили? Не разобрано ни одного вопроса по этой теме. Как грузить и выгружать, и так понятно. Более актуальные вопросы это: 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? А не та бесполезная муть в видео. Я поражаюсь комментариям ниже, покупные что ли?
@gaitavr19923 жыл бұрын
Да я всех купил, сколько вам заплатить за положительный отзыв?)
@gaitavr19923 жыл бұрын
А если серьёзно, то название видео читали? Какой андроид и потоки? И кстати, ни на одном проекте у меня поток не вис. Так что можете взять свой список и написать по нему статью с пруфами. Если желания делиться информацией нет, то увы, развлекайтесь в комментариях дальше
@VitalSchool3 жыл бұрын
@@gaitavr1992 Простите, просто наболело, я пояснил на GD почему. В том-то и дело, что если бы я мог бы на них ответить я бы вместо наездов написал бы ответы, что бы об этом хоть где-то информация была. У вас интересные видео, а тут тема актуальная, очень актуальная, но самого главного нет! Смотря ваши видео, мне все нравится, а в данном случае, как будто послали. Я готов поделиться информацией любой, той что знаю, но от нее толку не больше чем от видео. Вы сами можете провести эксперимент. Включите галку разделять ресурсы при компиляции и вас ждет сюрприз - если, например, сцену добавить в addressables, она не загрузится (по крайней мере на андройде). В связи с этим, вопроc выше, как указать путь? Ну и так далее. Цель-то сделать не отдельно единично загружаемые ресурсы, а полную динамическую подгрузку всего с адекватной архитектурой и хранением данных. Я понимаю, что никто этим не замарачивается, но не понимаю почему?
@gaitavr19923 жыл бұрын
У меня в рабочем проекте очень много сцен, которые пакуются отдельно. Все работает на андроиде