Продвинутый C# в Unity. Паттерн Visitor [Посетитель]
Вставка
- Опубліковано 25 лип 2024
- Шаблон проектирования «Посетитель» в реальном проекте на Unity за 5 минут!
Салют, ты на канале Night Train Code 😎
• 🖤 GitHub: github.com/MeeXaSiK
• 🖤 VK: nighttraincode
• 🖤 Telegram: t.me/nighttraincode
• 🖤 Instagram: / the.meps_
• Таймлайн:
00:00 ► Вступление
00:21 ► Для чего нужен Паттерн Visitor (Посетитель)?
01:13 ► Наглядная теория
01:28 ► Интерфейс Visitor для всех типов оружий
01:48 ► Немного про Overlap
02:06 ► Реализация интерфейса Visitor
03:23 ► Вызов метода Visit через Accept
05:08 ► Ещё один плюс паттерна «Посетитель»
Поддержка канала:
www.donationalerts.com/r/nigh...
кратко, емко и по делу, есть интересные практики, вот, держи лайк)
Благодарю!
Круто, спасибо большое, продолжай снимать ролики в том же духе)
На здоровье, договорились)
Отлично, малесь быстро, но мне кажется из-за этого я и понял больше, и интереса стало больше)
Спасибо)
Повторюсь, быстро там, где код, не совсем (или никак не) относящийся к теме, но может быть интересен людям, видимо интерес есть 😄🔥
Привет, спасибо за туториал. Сними ролик про UniTask, вижу ты его используешь в проекте)))
Ой как хорошо, спасибо за видео
На здоровье)
комментарий в поддержку)
Ничего не понял, но очень интересно.
Делать хитбокс визитером не очень в плане открытости/закрытости. Лучше сделать оружия визитерами, тогда для добавления нового оружия нужно будет создать 1 реализацию визитера и все. Собственно визитер и нужен для удобного добавления операции над существующей иерархией классов (хибоксов).
Спасибки!)
На здоровье)
Очень интересная реализация паттерна!)
А будет ли разбор паттерна "состояние" для ИИ?
Привет, благодарю)
Думаю, да, будет 😎
Я тоже жду уроки про другие патерны
Давай про паттерн абстрактная фабрика
Хорошо объясняешь , а главное еще и правильно. Нету до чего прицепиться. Хотел поругать за использование тегов, но не получилось 😂
Спасибо! Ахвххаха, да, всё продумано 🤣
Если вкратце, то смысл в том, чтобы вместо прописывания одного общего метода в интерфейсе для получения атаки с нагружением его кучей условий и аргументов, этот метод перегружается и начинает принимать отдельный класс для каждого вида атаки со всеми нужными полями?
Именно так
Привет, на отрывке 4:28 метод PerformAttack имеет параметр override, но он ,вроде бы, применяется только к abstract или virtual. Можно небольшое объяснение как это работает?
Привет, это переопределение методов. Полиморфизм подтипов. Можешь это погуглить)
@@NightTrainCode а ок, спасибо
Спаcибо за видео, а можно узнать про класс Unit, он в себе содержит только ссылки на компоненты и другие классы обращаются к ним через Unit? И так как доступны 2 класса UnitHealth и UnitDamageable, то можно менять значение в UnitHealth на прямую, игнорирую UnitDamageable получается
На здоровье
Да, только содержит ссылки на компоненты. А все компоненты содержат ссылку на этот класс Unit, чтобы можно было удобно друг к другу обращаться
Можно менять значение только в UnitHealth, но это нелогично
Через UnitDamageable можно наносить урон (метод ApplyDamage), а если необходимо вылечить юнита, то нужно сделать отдельный метод, например, просто Heal
@@NightTrainCode спасибо. А касательно методов Default Visitor, там аргументом передается оружие, а параметром принимается WeaponAttack, не подскажешь какая там иерархия наследования? Странно что оружие и атака оружия наследуются друг от друга, учитывая разделение ответственности на том же юните. Хотя возможно именно с оружием это имеет смысл, но все же наверное назову IWeapon или просто Weapon тогда
@@gameviewer5693 DefaultRaycastVisit спасает от дублирования кода
У оружия есть основной Weapon, как у Unit
В классе Weapon есть ссылки на все компоненты, например:
WeaponAttack
WeaponAudio
WeaponAnimator
WeaponAmmunition
И т.д., и т.д.
WeaponAttack для каждого оружия свой, так как поведение у них разное. А так, можно и просто Weapon основной передавать, а не WeaponAttack
здраствуйте, снимите видео как уменшить трис ивертс, из за этого игра лагает
тутор крутой но где ссылка на репу?))
Привет, когда видео про вкладку Lighting?
Салют, вряд-ли в скором времени, пока другие темы
@@NightTrainCode очень нужно просто :(
Каеф, но моменты с кодом иногда очень быстрые, не успеваешь сообразить что тебе что то поясняют
Отрывки из кода на столько быстро пролетают что даже не понятно что ты там хотел показать, приходится ставить на паузу постоянно
Не спеши, ты нам ещё живой нужен с:
Спасибо! 😉
Не останавливаюсь надолго в тех моментах, которые не относятся к теме видоса, но, может быть, будут кому-то полезны)
Весь ютуб смотришь на х2, и только найт трейн на x0.5 :-D
@@grimseal 👻🤡
Посмотрел гитхаб, увидел что местоположение - Красноярск, так ли это на самом деле?
Да, всё верно, а что смущает?
Земляк?)
@@NightTrainCode Да)
@@evilvirraZzz Левый берег на связи 🤙
Подскажи пожалуйста где вообще можно взять библиотеку Юнити ?
Чего?)
@@NightTrainCode я просто пока в этом профан , имею ввиду где узнать как и что выполняет та или иная функция , класс , переменная ?
@@user-es7ld6vs1f Что касается кода - справка Microsoft про C# + видео на ютабе
Что касается библиотеки Unity, которая идёт вместе с движком - документация на сайте Unity + тоже видосы на ютабе
@@NightTrainCode теперь осталось выучить английский, ладно спасибо и удачи )
@@user-es7ld6vs1f В документации Unity есть даже туториалы
А вы еще вернетесь?((( Я прост новенький, в танке так сказать, мб есть причина того что 7 мес без роликов.
Привет, в телеграме у меня почаще посты выходят)
Новый ролик уже на днях после такого долгого перерыва 🥳
@@NightTrainCode ебоооииии
0:18 дробовик автомат)
P.S. Это не дробовик(
Ага)
Ничерта не понял, видимо рано залез сюда