Дико недооцененный канал. Очень качестенное объяснение с хорошим качеством кода. Редко такое встретишь. Не останавливайся ❤️
@NightTrainCode2 жыл бұрын
Спасибо большое, этот канал я точно никогда не заброшу) ❤️
@kaifimaz45246 ай бұрын
@@NightTrainCode видео не выходило 11 месяцев((
@NightTrainCode6 ай бұрын
@@kaifimaz4524 Сам в шоке(
@kaifimaz45246 ай бұрын
@@NightTrainCode надеюсь вернёшься. У тебя очень хорошо получается объяснять такой талант надо продвигать
@psy_gamer2 жыл бұрын
Отличное объяснение паттерна! И радует, что ролики стали выходить намного чаще!
@NightTrainCode2 жыл бұрын
Спасибо большое) Ахах, да
@evgenijtsvetkov70082 жыл бұрын
@@NightTrainCode не за что :) просто, а если переименовал метод, все сдвигается влево или в право. А иногда левая часть очень далеко от правой и по факту читая код голову мотаешь. Ну как мне показалось без авто генерации слежения за подобным, не удобно, видел подобное один раз.
@nou_name12 жыл бұрын
Обожаю начало твоих видео прям в фирменном стиле и это очень круто а в видео воды вообще нету а это очень большой + МУЖИК ТЫ РЕАЛЬНО ХОРОШ РЕСПЕКТ
@NightTrainCode2 жыл бұрын
Еее, большое спасибо, мужик! 😉❤️
@moranyt82992 жыл бұрын
Приятно наблюдать что канал оживает, видео качественные, жду много интересного
@NightTrainCode2 жыл бұрын
Спасибо)
@СтепанДегтярик-ц5ч2 жыл бұрын
Кайф Ролики, которые смотреть просто приятно, а полезная инфа как бонус
@NightTrainCode2 жыл бұрын
Благодарю)
@laniakeadev.22712 жыл бұрын
Спасибо за видео. Рад, что нашёл этот канал.
@NightTrainCode2 жыл бұрын
На здоровье, спасибо)
@Fenneig2 жыл бұрын
У тебя такая кайфовая подача материала, спасибо, что рассказываешь!
@NightTrainCode2 жыл бұрын
Спасибо большое за тёплые слова)
@theoctan85692 жыл бұрын
Увидел название. Подумал: ну началось. Опять этот синглтон. У тебя же есть видео про Zenject. Услышал о чем речь идет. Сразу подумал: уважуха)
@NightTrainCode2 жыл бұрын
Ахах, ну я же прошаренный чуть-чуть 😹 Спасибо)
@theoctan85692 жыл бұрын
@@NightTrainCode я думаю, что стоит добавить название паттерна не только в превью, но и в название, чтобы легче было другим людям находить, которые не являются подписчиками.
@NightTrainCode2 жыл бұрын
@@theoctan8569 В описании и тегах есть название для SEO, а так, на превью оно)
@maxBornysov2 жыл бұрын
Ура, новый ролик =)
@andyBorko2 жыл бұрын
Спасибо за видео! Хотелось бы побольше о паттернах в Unity с простыми примерами реализации
@waytfox2 жыл бұрын
спасибо. познавательно. ждем новых видео.
@NightTrainCode2 жыл бұрын
На здоровье, спасибо)
@veiterio2 жыл бұрын
Моё почтение за ролик!
@NightTrainCode2 жыл бұрын
Спасибо)
@1lowol12 жыл бұрын
на метаните вроде тоже есть патерны, но у тебя понятнее получается)
@NightTrainCode2 жыл бұрын
Ахах, спасибо)
@anatoliy96968 ай бұрын
Мне кажется первый пример нужно было реализовывать через паттерн состояния или изменить слегка пример. Убрать swim и добавить новые классы ходьба спортивным шагом, обычная ходьба, пьяная ходьба и т.пд
@1lowol12 жыл бұрын
идея для ролика: из чего делать тот или иной объект, например дорогу в городе, это некий плейн или 3д объект или спрайт горизонтально положенный), она должна накладываться на террейн или просто висеть в воздухе рядом с объектами земли и тд. Было бы очень познавательно😁
@НикитаБедарев-ч6и Жыл бұрын
Очень годно
@StrumDev2 жыл бұрын
И 1000 лет не прошло, удаче тебе
@RimuruDev2 жыл бұрын
Благодарю за труд! Кайфую с подачи материала. ❤ В тот день когда ты снимишь видео о том как на реальном примере разрабатывать проект на unity с помощью MVVM. Оформлю платную подписку на тебя везде где только это возможно сделать😹
@NightTrainCode2 жыл бұрын
Спасибо большое 😊 Ахах, договорились)
@incognitoanonymous9349 Жыл бұрын
Я только закончил изучение паттернов, но как по мне если ты в угоду инкапсуляции забираешь возможность стратегии меняться динамически, то теряется её смысл и это больше напоминает паттерн Шаблонный метод. Будь добр поправь, если я ошибаюсь
@garetdark80952 жыл бұрын
спасибо за видос
@NightTrainCode2 жыл бұрын
Спасибо за коммент, на здоровье)
@_Otets_ Жыл бұрын
В полку классных каналов по Unity без говнокода от школьников прибыло!! Продолжай, таких каналов очень не хватает. P.s. Подписался.
@NightTrainCode Жыл бұрын
Спасибо)
@kunet24Ай бұрын
3:39 Я: "Вроде как понимать начал, вот-вот... Но нет." Както не дотянул туториал. Я как человек который не знает этот паттерн и пришёл учиться с нуля говорю: "Слишком быстро бросил тему." (Вообще этот комментайри от человека с Нулём знаний, а такой комент не часто встретишь)
@RimuruDev2 жыл бұрын
Вдарьте кнопке подписаться на этот канал! Покажите этой кнопке кто тут главный!
@NightTrainCode2 жыл бұрын
Ахах, спасибо, спасибо)))
@xVitOSx Жыл бұрын
Чёрт. Помогите пожалуйста. Я всё пытаюсь понять, чё такое паттерны, но ничего не могу понять. Раньше ж я всё понимал нормально, но стоило столкнуться с паттернами - всё. Сплошные затупы и непонятки. Голова уже раскалывается, хоть и ни на шаг не приблизился к пониманию этой темы
@NightTrainCode Жыл бұрын
Берешь один любой простой паттерн и тратишь времени столько, сколько нужно на его изучение. И так с каждым) Будет понятнее, если скажу, что «паттерн» - это шаблон кода, подходящего для решения какой-то проблемы?
@evggg11 ай бұрын
Пиши без паттернов. Главное, чтоб игра работала. У нас тут не рокет саенс )) Когда база накопится, когда будешь готов, тогда в паттерны с головой окунешься. Не всё сразу. Да и в большинстве случаем они не нужны, либо сами собой получаются, только ты не знаешь, что ты изобрел велосипед. Это просто логика.
@германпопов-з2ь Жыл бұрын
Видео просто не объяснило как задавать то или иное поведение в первом примере, я должен получается в Person завести переменную PersonSetup чтобы двигать его? Тогда получается жесткая связанность между сущностями
@kanatushtimofey3452 Жыл бұрын
Понимаю, что вопрос не в тему, но подскажите пожалуйста на 3:29, что за музыка на фоне. Очень нужна (´▽`ʃ♡ƪ)
@artemignat77642 жыл бұрын
Ещё бы посмотреть поттерны строитель и наблюдатель.
@NightTrainCode2 жыл бұрын
Наблюдатель уже есть на канале, но я хочу перезаписать этот видос
@Tumanop Жыл бұрын
Сори за тупой вопрос но я не понял как происходит переключения с ходьбы на плаванье 2:08 неуглядел не зависимости ни тригеры для этого, если кто знает и вам не лень поделиться своим пониманием то можете разъяснить ?
@NightTrainCode Жыл бұрын
Там просто абстрактный пример Можно самому в любой момент менять поведение как захочется ну и чтобы было логично)
@evgenijtsvetkov70082 жыл бұрын
Удобно выдерживать принятый код стайл? public void Speak() => ......... publick void Attack(.....................) => .......
@NightTrainCode2 жыл бұрын
В Rider это можно нажатием трёх клавиш сделать)
@requiem_for_a_dream54632 жыл бұрын
3 видос за 2 недели.
@NightTrainCode2 жыл бұрын
Ес)
@PS-vj6jz2 жыл бұрын
Блин, по новой. Как бы и понял, но и понял, что не понял...
@evggg11 ай бұрын
Всё вроде круто на бумаге, но где конкретика? Ведь чтоб поведения выполнялись, нужен монобех, а у тебя одни интерфейсы тут. Тема не до конца раскрыта, я считаю.
@АлександрСериков-ч5ю2 жыл бұрын
Чуваааааак!!! Ну, не путай инкапсуляцию с сокрытием/изоляцией! Инкапсуляция -- некое логическое объединение данных вместе с методами их обработки. Главный инструмент для ее обеспечения -- собственно класс/структура (в C#, например), которые инкапсулируют в себе поля, свойства и методы. Инкапсуляция при этом не обязательно закрывает прямой доступ к данным, это просто некоторый логический контур, оболочка (собственно капсула) вокруг данных, который показывает, что "вот это все" относится к некой сущности, но не обязательно эта капсула -- непроницаема. Ты можешь сделать полностью открытый класс, и он все равно будет инкапсулировать (объединять в себе) данные и методы их обработки. А вот пример отсутствия инкапсуляции: в процедурных языках (например в C) можно делать отдельно глобальные переменные, глобальные методы и связывать это друг с другом в случайных местах в программе. Вот тут ни методы, ни данные не относятся ни к какой сущности. Одни просто есть, а вторые просто что-то делают с чем-то. Вопрос уместности открытости или закрытости -- совсем уже другая тема.
@NightTrainCode2 жыл бұрын
Спасибо за комментарий) Да, верно, инкапсуляция необязательно должна закрывать доступ к данным. Она должна защищать сущность от неправильного внешнего воздействия. Я нигде и не говорил, что инкапсуляции обязательно должна закрывать доступ. И здесь как раз пример инкапсуляции, потому что будет нелогично, например, если класс SilentCitizenUnit вдруг начнёт разговаривать 😄. И мы от этого спаслись. UPD: У меня и видео про инкапсуляцию есть)
@АлександрСериков-ч5ю2 жыл бұрын
@@NightTrainCode Вот опять же. Я, видно, неправильно акценты расставил. Инкапсуляция не должна защищать сущность. Она всего лишь обеспечивает такую возможность. Это как с вещами в доме: если они просто валяются на полу, то сложно будет их защитить от чужого воздействия. А вот если они сложены в шкаф, то другое дело. Но наличие шкафа с вещами само по себе не защищает вещи. Хозяин волен либо повесить на него замок, либо оставить его незапертым. Инкапсуляция есть: вещи аккуратно (или нет) разложены в шкафу. Сокрытие зависит от степени параноидальности хозяина))) Собственно, к чему я придрался (4:10): "Но в этом коде есть одна проблема. И это -- отсутствие инкапсуляции". Инкапсуляция там есть: класс с полем и методом для доступа к этому полю. То, что доступ этот публичный, никак не говорит об отсутствии инкапсуляции: она есть уже из простого факта, что это все описано в классе "Unit", который, собственно, инкапсулирует в себе поле и метод доступа к нему. Еще раз повторюсь, я не придираюсь к выбранному решению. Оно верное (с моей точки зрения). Я скорее "докапываюсь" до терминологии. Потому что потом "масялята" бегают с пеной у рта и доказывают, что инкапсуляция -- сокрытие/изоляция/защита данных от неконтролируемого доступа.