Это правда самое простое объяснение зенжекта, которое я видел. Мне кажется в паттернах самое главное понять саму концепцию и у вас отлично получается ее подать!
Где-же ты был раньше... У тебя хорошо получается объяснять. Желаю заинжектить больше подписчиков в Новом году!) Годные источники это прям мой роадмэп после того как попытался освоить Zenject через доки на гитхабе ) Всё было именно в таком порядке. Но ты правильно сказал что надо учиться читать доки. Помучив мозг несколько часов над сложным разделом, можно на всю жизнь освободить себя от поиска длинных гайдов в ютубе, в которых ничего нового нет.
Спасибо за тёплые слова) Очень много запросов поступило по поводу практического применения зенджекта, я попытаюсь запилить полезное видео в рубрике "Паттерны на практике"
Отличное видео и прекрасное повествование. Очень хотелось бы увидеть от вас полноценный курс по Unity с создание проекта с разными фичами для наглядности, мало кто так хорошо объясняет а вы человек с опытом и я уверен что получиться прекрасно.
Большое спасибо за тёплые слова :) К сожалению, на нормальный полноценный курс у меня нет времени и сил, так как у меня есть основная работа, после неё еле-еле хватает сил написать материал для ролика минут на 10. Полноценный курс не потяну :C
@@sergeykazantsev1655 Понимаю, могли бы вы дать совет начинающему разработчику на Unity ? уже более года пытаюсь разбираться но пока даётся сложно, даже на GB платформу поступил, может у вас найдутся советы ? Спасибо
Отличное видео! Для меня именно DI - является больной точкой, а в частности применение extenject. Постоянно не хватает либо менторской помощи, либо конкретного примера(именно не большого), но такого чтобы наглядно было можно посмотреть на "околорабочую" модель. Благодарю за труд, полез разбирать ваши демки.
Если здесь наберется 20 лайков выпущу серию видео про zenject, могу рассказать что знаю, обычное внедрение, разные фабрики пулы и прочие кейсы, умею не все, но опыт есть
Не стоит подвязываться к лайкам под комментариями на чужом канале. Если ты считаешь что тема недостаточно раскрыта - публикуй и выпускай серию, люди скажут спасибо.
Мама я влюбился. Краткое объяснение как все +- работает(я уж привык что подобные вещи по часу объясняют).Ссылка на проект с РАЗНОЙ реализацией одного проекта. Ссылки на других авторов которые тоже объясняют тему. Подробные тайм коды. Вот это я называю любовь с первого взгляда
в описание: Яковлев Илья ruclips.net/video/jVFXnDd40CE/видео.htmlsi=SHKRN6p0_MvSID2n Infallible Code ruclips.net/video/6tn8pMQuxEk/видео.htmlsi=19IgiYnQzD2oyV1d K-Syndicate ruclips.net/user/livembuzSrKHBHI?si=uYMkFagFvaykWek0
Еще было бы неплохо видео про архитектуру проекта с глобальной State Machine-ой, на сколько я понимаю, это решает проблему очередности работы с объектами, упрощает инициализаю объектов и что-то еще наверное.
Видос не плох, опять таки напишу, что контента, который отходит от типичных "как сделать стрельбу в юнити" и затрагивает чуть более продвинутые темы становится больше, что не может не радовать. Автору спасибо и уважение) Но воо касаемо целесообразности использования накруток в Zenject типа сингналки, факторки и тп пожалуй не соглашусь. Как по мне, это уже лишнее, в конце концов если это понадобится, то его можно реализовать / добавить отдельно В частности поэтому присмотрелся больше к VContainer - чистый контейнер, ничего лишнего - ляпота!
Блин, недавно писал свою архитектуру, использовал свой inject, object pool, bootstrap и event bus, в итоге сейчас немного забавно на сколько моя концепция отдаленно напоминает zenject, хотя до этого видео я про него только слышал) Конечно у меня все намного проще, класс с системой инжектов на сотню строк)) Но все-равно немного подняло настроение, что я оказывается даже немного шарю за программирование, а не просто какую-то фигню пишу)
Хотелось бы еще увидеть реализации фабрики с использованием zenject, в демке такого примера не оказалось. И например еще использование GameObject Context с этой фабрикой
@@sergeykazantsev1655 , большинство программистов рекомендуют прокидывать зависимости в метод Constructor, который является обычным методом, так программистам понятно, что в нем происходит: так же читая параметры этого метода можно понять про что вообще класс. В общем, лучше в метод прокидывать.
Хорошо объясняешь. Спасибо. Расскажи пожалуйста так же хорошо про ProjectContext в Zenject. Как им пользоваться и зачем он нужен? ps Я заметил, что объяснять такие сложные штуки лучше на очень простых примерах, как сделал ты в этом ролике. Чтобы самым сложным в уроке была только тема урока, а все остальное наипростейшим. Так лучше воспринимается.
Ну я тут больше чем по таймингу 09:46 вряд ли подскажу. Он используется как хранитель сервисов которые нужны глобально по всему проекту. Если в проекте много сцен и нужен пак сервисов на любой сцене - целесообразно их поместить именно в ProjectContext.
Чтобы стало хоть немного понятно, с этим нужно столкнуться. Разработайте какой нибудь небольшой проект, с пара-тройкой механик. Поймайте кучу багов, и поймёте зачем di вообще нужен. А затем смотрите про di container
Мне кажется, тут у человека нет желания самостоятельно копать, разбираться и потеть , а есть желание получить знание быстро, легко и без усилий. К сожалению зенджект придётся пораскуривать если есть желание его понять и начать применять
@@3magalibur953 вопрос тут в другом, Вы серьезно считаете что я при поиске информации сперва на ваш канал попаду а затем перейду по ссылке? Если так то вы сильно переоцениваете популярность своего канала, а если нет то зачем это видео? Не хочу ни кого обидеть, всё же это стоило сил и времени, но стоило ли оно того
А теперь бы знать как это все юзать вместе с тем же Netcode for GameObjects, там будет куча подводных камней, которые придется решать. Например спавнить объекты через зенжектовский или неткодовский Instantiate, или как, например, заинжектить зависимости на клиенте объекту который был создан на сервере, и так далее. Все эти проблемы можно, наверное, решать, но мне проще было отказаться от зенжекта в пользу старого доброго сервис локатора.
Всё относительно просто. Создаёшь свою фабрику для конкретного типа объекта, прокидываешь туда DiContainer от Znject, в методу Create спавнишь свой GameObject с помощью Netcode (или другого любого фреймворка, тот жe Photon или любой другой, который имеет свой уникальный способ Instantiate) и инжектишь зависимости из контейнера _contaeiner.InjectGameObject(instance);
Ожидал увидеть в ролике код, где будет это всё показано. Вроде такого: вот мы создаём этот контейнер, вот тут мы добавляем зависимости, а вот тут мы пишем [Inject] и всё магическим образом работает. Без кода не очень понятно. Как там этот инжект пишется... Тот кусок, где было написано "Bind" и дюжина строк ниже, повергла меня в ужас. Кстати, почему в русскоязычном интернете говорят: "бинд, биндинг", если он читается: "байнд, байндинг" и переводится как "привязка, привязывать"? В общем, ролик особо не открыл мне глаза на то, что это за зверь. Конечно, я понимаю, что сейчас последует ответ в стиле: "Мне лучше знать, как делать ролики, а остальные пусть идут лесом", но всё же. Явно напрашивается крохотный демонстрационный пример на пару минут эфирного времени. Без особой детализации, а просто для иллюстрации всего, что было рассказано. Конечно, я буду искать другие ролики, чтобы получить ответы на свои вопросы. Это понятно. Но мне бы хотелось, чтобы на ЭТОМ КАНАЛЕ ролики были более информативными. Тем более, что мне понравился темп повествования и наличие точно дозированных пауз в правильных местах.
1. Я говорю биндинг а не байндинг потому что мне так проще) 2. Крохотный пример есть в моём гите который я опубликовал, причём там есть пример игры на чистом DI, пример на DI с Zenject-ом и демка с контекстами зенджекта для понимания как это работает 3. Насчёт отдельного демо примера на пару минут времени по зенджекту - такой запрос я через день после публикации увидел, ещё один ролик с практическим примером уже делаю.
@@sergeykazantsev1655Спасибо за ответы. Кстати, я знаю одного Сергея Казанцева, который чемпион СССР по дельтапланеризму 1982 года. Вы не родственники случайно?
К сожалению, нет. В семье чемпионов СССР у меня не было :C Из забавных однофамильцев, похоже что есть какой-то чиновник под санкциями Сергей Казанцев, потому что когда я в Европе пытался местной почтой получить посылку - мне сказали что Сергей Казанцев находится в чёрном списке Оо Если загуглить списки людей под санкциями - да, Сергея Казанцева можно найти :D Впрочем финального ответа я так и не получил.
Спасибо!
Теперь даешь UnityRx, Dots, ахахах. Спасибо за ролик) Удачи с новыми видео!
да UniRx полезно было бы а то нифига непонятно зачем и как они у всех
Братан, хорош, давай, давай вперёд! Контент в кайф, можно еще? Вообще красавчик! Можно вот этого вот почаще?
Очень понятное разъяснение. Именно после этого видео я начал что то понимать. Спасибо
Это правда самое простое объяснение зенжекта, которое я видел.
Мне кажется в паттернах самое главное понять саму концепцию и у вас отлично получается ее подать!
Наконец-то новое видео, а я уже подумал, что еще одного IT-Серегу потеряли)
Где-же ты был раньше...
У тебя хорошо получается объяснять. Желаю заинжектить больше подписчиков в Новом году!)
Годные источники это прям мой роадмэп после того как попытался освоить Zenject через доки на гитхабе ) Всё было именно в таком порядке.
Но ты правильно сказал что надо учиться читать доки. Помучив мозг несколько часов над сложным разделом, можно на всю жизнь освободить себя от поиска длинных гайдов в ютубе, в которых ничего нового нет.
Спасибо за тёплые слова) Очень много запросов поступило по поводу практического применения зенджекта, я попытаюсь запилить полезное видео в рубрике "Паттерны на практике"
Отличное видео и прекрасное повествование. Очень хотелось бы увидеть от вас полноценный курс по Unity с создание проекта с разными фичами для наглядности, мало кто так хорошо объясняет а вы человек с опытом и я уверен что получиться прекрасно.
Большое спасибо за тёплые слова :)
К сожалению, на нормальный полноценный курс у меня нет времени и сил, так как у меня есть основная работа, после неё еле-еле хватает сил написать материал для ролика минут на 10. Полноценный курс не потяну :C
@@sergeykazantsev1655 Понимаю, могли бы вы дать совет начинающему разработчику на Unity ? уже более года пытаюсь разбираться но пока даётся сложно, даже на GB платформу поступил, может у вас найдутся советы ? Спасибо
А какого рода вам советы нужны? Конкретные по материалам, что-то общее, типа топ ошибок новичков , про процессы собеседования или что?
@@sergeykazantsev1655 Желательно советы по обучению
Вы смотрели мой ролик по советам новичкам при устройстве на работу?
Спасибо. Пока самое понятное объяснение из всего, что нашел. Надеюсь будет видео с примером реализации какой то простой механики .
Уже есть, посмотрите видео в плейлисте "паттерны на практике" - называется zenject для самых маленьких
Ура новое видео наконец-то. А можно ещё ECS? :) И спасибо огромное за ролик!!!
Ждал, жду и буду ждать 😌спасибо ❤
Спасибо за очень информативное видео❤
Отличное видео! Для меня именно DI - является больной точкой, а в частности применение extenject. Постоянно не хватает либо менторской помощи, либо конкретного примера(именно не большого), но такого чтобы наглядно было можно посмотреть на "околорабочую" модель. Благодарю за труд, полез разбирать ваши демки.
Если здесь наберется 20 лайков выпущу серию видео про zenject, могу рассказать что знаю, обычное внедрение, разные фабрики пулы и прочие кейсы, умею не все, но опыт есть
Не стоит подвязываться к лайкам под комментариями на чужом канале. Если ты считаешь что тема недостаточно раскрыта - публикуй и выпускай серию, люди скажут спасибо.
@@sergeykazantsev1655 почему не стоит, я считаю что много каких тем не раскрыты, но мб так дам себе толчек к началу
Ну делать толчок своему каналу за счет оставления комментариев на другом канале, такое себе)
@@sergeykazantsev1655 звучит как 🎩
Мы мистер лол, чел
Спасибо за видео, мне понравилось)
Мама я влюбился. Краткое объяснение как все +- работает(я уж привык что подобные вещи по часу объясняют).Ссылка на проект с РАЗНОЙ реализацией одного проекта. Ссылки на других авторов которые тоже объясняют тему. Подробные тайм коды. Вот это я называю любовь с первого взгляда
наконееец тоооо!!!
в описание:
Яковлев Илья ruclips.net/video/jVFXnDd40CE/видео.htmlsi=SHKRN6p0_MvSID2n
Infallible Code ruclips.net/video/6tn8pMQuxEk/видео.htmlsi=19IgiYnQzD2oyV1d
K-Syndicate ruclips.net/user/livembuzSrKHBHI?si=uYMkFagFvaykWek0
Ни возможно не хотеть, на Зенджекте посидеть
В таких видео хотелось бы разбора хотя бы на простом практическом примере, а то как со всеми видео по Zenject - нифига не понятно, но очень интересно)
Похоже надо пилить третье видео по Di где будет сравнение двух демок что я написал :/
@@sergeykazantsev1655 ждун.jpeg
как только так сразу)
УРА, видос!!!
Еще было бы неплохо видео про архитектуру проекта с глобальной State Machine-ой, на сколько я понимаю, это решает проблему очередности работы с объектами, упрощает инициализаю объектов и что-то еще наверное.
Пока делал этот ролик, как раз появилось желание Стейт машину разобрать, правда не глобальную
@@sergeykazantsev1655 а система экранов приложения считается глобальной Стейт машиной?
смотря как организуешь. В принципе её можно на стейт-машине организовать
Хорошее видео 💪👍
Видос не плох, опять таки напишу, что контента, который отходит от типичных "как сделать стрельбу в юнити" и затрагивает чуть более продвинутые темы становится больше, что не может не радовать. Автору спасибо и уважение)
Но воо касаемо целесообразности использования накруток в Zenject типа сингналки, факторки и тп пожалуй не соглашусь. Как по мне, это уже лишнее, в конце концов если это понадобится, то его можно реализовать / добавить отдельно
В частности поэтому присмотрелся больше к VContainer - чистый контейнер, ничего лишнего - ляпота!
Спасибо за видео
Блин, недавно писал свою архитектуру, использовал свой inject, object pool, bootstrap и event bus, в итоге сейчас немного забавно на сколько моя концепция отдаленно напоминает zenject, хотя до этого видео я про него только слышал) Конечно у меня все намного проще, класс с системой инжектов на сотню строк)) Но все-равно немного подняло настроение, что я оказывается даже немного шарю за программирование, а не просто какую-то фигню пишу)
Перестаньте донатить автору на кофе и шаурму - автор толстеет!)))
Хотелось бы еще увидеть реализации фабрики с использованием zenject, в демке такого примера не оказалось. И например еще использование GameObject Context с этой фабрикой
Фабрика возможно, а вот насчёт GameObjectContext - не уверен. В планах пока нет)
Не хочешь гайд про urp shader graph запилить?
Думаю у тебя бы неплохо получилось
До этого надо самому в нем нормально разобраться, я с ним почти не взаимодействовал
Не услышал про метод Constructor поэтому немного не до конца понял как правиль всё прокинуть
11:30 "Укажите тегами inject для конструкторов, методов и свойств сервисы которые нужно внедрить"
Что еще за метод Constructor?)
@@sergeykazantsev1655 , большинство программистов рекомендуют прокидывать зависимости в метод Constructor, который является обычным методом, так программистам понятно, что в нем происходит: так же читая параметры этого метода можно понять про что вообще класс. В общем, лучше в метод прокидывать.
Наверное речь о методе который все называют Construct)
@@sergeykazantsev1655, да, запутался в мыслях)
Оп оп, контент)
Хорошо объясняешь. Спасибо. Расскажи пожалуйста так же хорошо про ProjectContext в Zenject.
Как им пользоваться и зачем он нужен?
ps Я заметил, что объяснять такие сложные штуки лучше на очень простых примерах, как сделал ты в этом ролике. Чтобы самым сложным в уроке была только тема урока, а все остальное наипростейшим. Так лучше воспринимается.
Ну я тут больше чем по таймингу 09:46 вряд ли подскажу. Он используется как хранитель сервисов которые нужны глобально по всему проекту. Если в проекте много сцен и нужен пак сервисов на любой сцене - целесообразно их поместить именно в ProjectContext.
Го ESC )))
Стоит ли с Zenject переходить на VContainer, если первый знаешь уверенно?
Чем больше знаешь фреймворков - тем лучше) Лишним не будет)
Тем более что Zenject вроде как больше не развивают, а про VContainer - не знаю
Всё правильно сказал, этой херни и без тебя в инете хватает. А вот простых и понятных примеров очень мало и после этого видео больше не стало
Ну если тебе недостаточно ссылки на три хороших видео, документацию и гит проект с демкой , да тут я уже ничем помочь не смогу)
@@sergeykazantsev1655 я их уже видел все
Чтобы стало хоть немного понятно, с этим нужно столкнуться. Разработайте какой нибудь небольшой проект, с пара-тройкой механик. Поймайте кучу багов, и поймёте зачем di вообще нужен. А затем смотрите про di container
Мне кажется, тут у человека нет желания самостоятельно копать, разбираться и потеть , а есть желание получить знание быстро, легко и без усилий.
К сожалению зенджект придётся пораскуривать если есть желание его понять и начать применять
@@3magalibur953 вопрос тут в другом, Вы серьезно считаете что я при поиске информации сперва на ваш канал попаду а затем перейду по ссылке? Если так то вы сильно переоцениваете популярность своего канала, а если нет то зачем это видео? Не хочу ни кого обидеть, всё же это стоило сил и времени, но стоило ли оно того
А теперь бы знать как это все юзать вместе с тем же Netcode for GameObjects, там будет куча подводных камней, которые придется решать. Например спавнить объекты через зенжектовский или неткодовский Instantiate, или как, например, заинжектить зависимости на клиенте объекту который был создан на сервере, и так далее. Все эти проблемы можно, наверное, решать, но мне проще было отказаться от зенжекта в пользу старого доброго сервис локатора.
Понимаю. К сожалению, сам с сетевым кодом работал мало, но охотно верю на слово)
Всё относительно просто. Создаёшь свою фабрику для конкретного типа объекта, прокидываешь туда DiContainer от Znject, в методу Create спавнишь свой GameObject с помощью Netcode (или другого любого фреймворка, тот жe Photon или любой другой, который имеет свой уникальный способ Instantiate) и инжектишь зависимости из контейнера _contaeiner.InjectGameObject(instance);
Ожидал увидеть в ролике код, где будет это всё показано. Вроде такого: вот мы создаём этот контейнер, вот тут мы добавляем зависимости, а вот тут мы пишем [Inject] и всё магическим образом работает. Без кода не очень понятно. Как там этот инжект пишется... Тот кусок, где было написано "Bind" и дюжина строк ниже, повергла меня в ужас. Кстати, почему в русскоязычном интернете говорят: "бинд, биндинг", если он читается: "байнд, байндинг" и переводится как "привязка, привязывать"?
В общем, ролик особо не открыл мне глаза на то, что это за зверь. Конечно, я понимаю, что сейчас последует ответ в стиле: "Мне лучше знать, как делать ролики, а остальные пусть идут лесом", но всё же. Явно напрашивается крохотный демонстрационный пример на пару минут эфирного времени. Без особой детализации, а просто для иллюстрации всего, что было рассказано.
Конечно, я буду искать другие ролики, чтобы получить ответы на свои вопросы. Это понятно. Но мне бы хотелось, чтобы на ЭТОМ КАНАЛЕ ролики были более информативными. Тем более, что мне понравился темп повествования и наличие точно дозированных пауз в правильных местах.
1. Я говорю биндинг а не байндинг потому что мне так проще)
2. Крохотный пример есть в моём гите который я опубликовал, причём там есть пример игры на чистом DI, пример на DI с Zenject-ом и демка с контекстами зенджекта для понимания как это работает
3. Насчёт отдельного демо примера на пару минут времени по зенджекту - такой запрос я через день после публикации увидел, ещё один ролик с практическим примером уже делаю.
@@sergeykazantsev1655Спасибо за ответы. Кстати, я знаю одного Сергея Казанцева, который чемпион СССР по дельтапланеризму 1982 года. Вы не родственники случайно?
К сожалению, нет. В семье чемпионов СССР у меня не было :C
Из забавных однофамильцев, похоже что есть какой-то чиновник под санкциями Сергей Казанцев, потому что когда я в Европе пытался местной почтой получить посылку - мне сказали что Сергей Казанцев находится в чёрном списке Оо Если загуглить списки людей под санкциями - да, Сергея Казанцева можно найти :D
Впрочем финального ответа я так и не получил.