Самый лёгкий паттерн. Продвинутый C# в Unity

Поделиться
HTML-код
  • Опубликовано: 17 сен 2024

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

  • @caveman7246
    @caveman7246 Год назад +13

    Дико недооцененный канал. Очень качестенное объяснение с хорошим качеством кода. Редко такое встретишь. Не останавливайся ❤️

    • @NightTrainCode
      @NightTrainCode  Год назад +3

      Спасибо большое, этот канал я точно никогда не заброшу) ❤️

    • @kaifimaz4524
      @kaifimaz4524 2 месяца назад

      @@NightTrainCode видео не выходило 11 месяцев((

    • @NightTrainCode
      @NightTrainCode  2 месяца назад

      @@kaifimaz4524 Сам в шоке(

    • @kaifimaz4524
      @kaifimaz4524 2 месяца назад

      @@NightTrainCode надеюсь вернёшься. У тебя очень хорошо получается объяснять такой талант надо продвигать

  • @psy_gamer
    @psy_gamer Год назад +6

    Отличное объяснение паттерна! И радует, что ролики стали выходить намного чаще!

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

      Спасибо большое)
      Ахах, да

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

      @@NightTrainCode не за что :) просто, а если переименовал метод, все сдвигается влево или в право. А иногда левая часть очень далеко от правой и по факту читая код голову мотаешь. Ну как мне показалось без авто генерации слежения за подобным, не удобно, видел подобное один раз.

  • @nou_name1
    @nou_name1 Год назад +4

    Обожаю начало твоих видео прям в фирменном стиле и это очень круто а в видео воды вообще нету а это очень большой +
    МУЖИК ТЫ РЕАЛЬНО ХОРОШ РЕСПЕКТ

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

      Еее, большое спасибо, мужик! 😉❤️

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

    Приятно наблюдать что канал оживает, видео качественные, жду много интересного

  • @laniakeadev.2271
    @laniakeadev.2271 Год назад +1

    Спасибо за видео. Рад, что нашёл этот канал.

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

    У тебя такая кайфовая подача материала, спасибо, что рассказываешь!

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

      Спасибо большое за тёплые слова)

  • @СтепанДегтярик-ц5ч

    Кайф
    Ролики, которые смотреть просто приятно, а полезная инфа как бонус

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

    Ура, новый ролик =)

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

    Спасибо за видео! Хотелось бы побольше о паттернах в Unity с простыми примерами реализации

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

    спасибо. познавательно. ждем новых видео.

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

    Увидел название.
    Подумал: ну началось. Опять этот синглтон. У тебя же есть видео про Zenject.
    Услышал о чем речь идет. Сразу подумал: уважуха)

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

      Ахах, ну я же прошаренный чуть-чуть 😹
      Спасибо)

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

      @@NightTrainCode я думаю, что стоит добавить название паттерна не только в превью, но и в название, чтобы легче было другим людям находить, которые не являются подписчиками.

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

      @@theoctan8569 В описании и тегах есть название для SEO, а так, на превью оно)

  • @1lowol1
    @1lowol1 Год назад +2

    идея для ролика: из чего делать тот или иной объект, например дорогу в городе, это некий плейн или 3д объект или спрайт горизонтально положенный), она должна накладываться на террейн или просто висеть в воздухе рядом с объектами земли и тд. Было бы очень познавательно😁

  • @anatoliy9696
    @anatoliy9696 5 месяцев назад +1

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

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

    Моё почтение за ролик!

  • @НикитаБедарев-ч6и
    @НикитаБедарев-ч6и Год назад +1

    Очень годно

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

    Благодарю за труд! Кайфую с подачи материала. ❤ В тот день когда ты снимишь видео о том как на реальном примере разрабатывать проект на unity с помощью MVVM. Оформлю платную подписку на тебя везде где только это возможно сделать😹

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

      Спасибо большое 😊
      Ахах, договорились)

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

    на метаните вроде тоже есть патерны, но у тебя понятнее получается)

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

    спасибо за видос

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

      Спасибо за коммент, на здоровье)

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

    И 1000 лет не прошло, удаче тебе

  • @incognitoanonymous9349
    @incognitoanonymous9349 11 месяцев назад +1

    Я только закончил изучение паттернов, но как по мне если ты в угоду инкапсуляции забираешь возможность стратегии меняться динамически, то теряется её смысл и это больше напоминает паттерн Шаблонный метод. Будь добр поправь, если я ошибаюсь

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

    Вдарьте кнопке подписаться на этот канал! Покажите этой кнопке кто тут главный!

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

      Ахах, спасибо, спасибо)))

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

    В полку классных каналов по Unity без говнокода от школьников прибыло!! Продолжай, таких каналов очень не хватает.
    P.s. Подписался.

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

    Ещё бы посмотреть поттерны строитель и наблюдатель.

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

      Наблюдатель уже есть на канале, но я хочу перезаписать этот видос

  • @германпопов-з2ь
    @германпопов-з2ь Год назад

    Видео просто не объяснило как задавать то или иное поведение в первом примере, я должен получается в Person завести переменную PersonSetup чтобы двигать его? Тогда получается жесткая связанность между сущностями

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

    Понимаю, что вопрос не в тему, но подскажите пожалуйста на 3:29, что за музыка на фоне. Очень нужна (´▽`ʃ♡ƪ)

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

    3 видос за 2 недели.

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

    Чёрт. Помогите пожалуйста. Я всё пытаюсь понять, чё такое паттерны, но ничего не могу понять. Раньше ж я всё понимал нормально, но стоило столкнуться с паттернами - всё. Сплошные затупы и непонятки. Голова уже раскалывается, хоть и ни на шаг не приблизился к пониманию этой темы

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

      Берешь один любой простой паттерн и тратишь времени столько, сколько нужно на его изучение. И так с каждым)
      Будет понятнее, если скажу, что «паттерн» - это шаблон кода, подходящего для решения какой-то проблемы?

    • @evggg
      @evggg 8 месяцев назад

      Пиши без паттернов. Главное, чтоб игра работала. У нас тут не рокет саенс )) Когда база накопится, когда будешь готов, тогда в паттерны с головой окунешься. Не всё сразу. Да и в большинстве случаем они не нужны, либо сами собой получаются, только ты не знаешь, что ты изобрел велосипед. Это просто логика.

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

    Удобно выдерживать принятый код стайл?
    public void Speak() => .........
    publick void Attack(.....................) => .......

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

      В Rider это можно нажатием трёх клавиш сделать)

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

    Сори за тупой вопрос но я не понял как происходит переключения с ходьбы на плаванье 2:08 неуглядел не зависимости ни тригеры для этого, если кто знает и вам не лень поделиться своим пониманием то можете разъяснить ?

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

      Там просто абстрактный пример
      Можно самому в любой момент менять поведение как захочется ну и чтобы было логично)

  • @PS-vj6jz
    @PS-vj6jz Год назад

    Блин, по новой. Как бы и понял, но и понял, что не понял...

  • @evggg
    @evggg 8 месяцев назад +1

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

  • @АлександрСериков-ч5ю

    Чуваааааак!!! Ну, не путай инкапсуляцию с сокрытием/изоляцией! Инкапсуляция -- некое логическое объединение данных вместе с методами их обработки. Главный инструмент для ее обеспечения -- собственно класс/структура (в C#, например), которые инкапсулируют в себе поля, свойства и методы. Инкапсуляция при этом не обязательно закрывает прямой доступ к данным, это просто некоторый логический контур, оболочка (собственно капсула) вокруг данных, который показывает, что "вот это все" относится к некой сущности, но не обязательно эта капсула -- непроницаема. Ты можешь сделать полностью открытый класс, и он все равно будет инкапсулировать (объединять в себе) данные и методы их обработки.
    А вот пример отсутствия инкапсуляции: в процедурных языках (например в C) можно делать отдельно глобальные переменные, глобальные методы и связывать это друг с другом в случайных местах в программе. Вот тут ни методы, ни данные не относятся ни к какой сущности. Одни просто есть, а вторые просто что-то делают с чем-то.
    Вопрос уместности открытости или закрытости -- совсем уже другая тема.

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

      Спасибо за комментарий)
      Да, верно, инкапсуляция необязательно должна закрывать доступ к данным. Она должна защищать сущность от неправильного внешнего воздействия. Я нигде и не говорил, что инкапсуляции обязательно должна закрывать доступ. И здесь как раз пример инкапсуляции, потому что будет нелогично, например, если класс SilentCitizenUnit вдруг начнёт разговаривать 😄. И мы от этого спаслись.
      UPD: У меня и видео про инкапсуляцию есть)

    • @АлександрСериков-ч5ю
      @АлександрСериков-ч5ю Год назад +3

      @@NightTrainCode Вот опять же. Я, видно, неправильно акценты расставил. Инкапсуляция не должна защищать сущность. Она всего лишь обеспечивает такую возможность. Это как с вещами в доме: если они просто валяются на полу, то сложно будет их защитить от чужого воздействия. А вот если они сложены в шкаф, то другое дело. Но наличие шкафа с вещами само по себе не защищает вещи. Хозяин волен либо повесить на него замок, либо оставить его незапертым. Инкапсуляция есть: вещи аккуратно (или нет) разложены в шкафу. Сокрытие зависит от степени параноидальности хозяина)))
      Собственно, к чему я придрался (4:10): "Но в этом коде есть одна проблема. И это -- отсутствие инкапсуляции". Инкапсуляция там есть: класс с полем и методом для доступа к этому полю. То, что доступ этот публичный, никак не говорит об отсутствии инкапсуляции: она есть уже из простого факта, что это все описано в классе "Unit", который, собственно, инкапсулирует в себе поле и метод доступа к нему.
      Еще раз повторюсь, я не придираюсь к выбранному решению. Оно верное (с моей точки зрения). Я скорее "докапываюсь" до терминологии. Потому что потом "масялята" бегают с пеной у рта и доказывают, что инкапсуляция -- сокрытие/изоляция/защита данных от неконтролируемого доступа.

    • @evggg
      @evggg 8 месяцев назад

      @@АлександрСериков-ч5ю а ты хорош