Рубрика "вредные советы от маслят"
Наткнулся на просторах тг на канал с "топ-лайфхаками по Unity" и пара из них меня прям возбудила с утра, внимание:
Вредный совет №1 "Используйте анонимные делегаты Action и Func вместо кастомных, это же гораздо проще" Ага, проще...
Предположим, нашему игроку нанесли урон и это событие надо передать всем заинтересованным: вьюшке игрока, какой-нибудь аналитике, звук и vfx проиграть и тд. Для этого, допустим, надо передать айдишник противника, нанесенный урон по хп и урон по броне. В оригинальном подходе от маэстро у нас получится событие: Action<int,int,int>
- выглядит удобно?😂
Или все таки гораздо проще сделать свой делегат с понятным неймингом? public delegate void Hit(int assaulter, int healthDamage, int armorDamage); В общем, совет на уровне "ходите под себя, это проще чем вытирать жопу"...
НО! Я не говорю использовать ТОЛЬКО кастомные делегаты. А призываю следить за контекстом - если вам нужно передать много данных в событии, а особенно однотипных, то гораздо удобнее свой делегат, чем каждый раз лезть в первоисточник события и проверять, что вы нужный int правильно интерпретируете.
Вредный совет №2 Используйте ScriptableObject для передачи событий между сценами Тут тоже понятно, откуда ноги растут. Знамения говностатья любимых юнитеков про ScriptableObject Architecture. Коротко ее основной посыл: "если вы только научились ходить и не умеет связывать классы между собой даже через синглтон, то используйте SO - закидайте проект монобехами, а данные, события и все что приглянется, киньте в SO и прокиньте через инспектор" И самый мой любимый подводный камень - ScriptableObject в редакторе изменяется между сессиями! Поэтому если у вас все данные хранятся в SO, то будьте любезны потом пробежаться по проекту и затереть все изменения.
И я бы не доебался, но в оригинальном после это представлено как лайфхаки, которые отличают джуна от мидла это шаг в сторону масштабируемого и профессионального кода Но я бы назвал это лайфхаки, которые обезьяну от неандертальца это шаг в кучу говна
На этом все, буду ждать новых лайфхаков, автор обещает: впереди про архитектуру, DI, UI-системы и async паттерны
А тем временем чтобы научиться нормально программировать, а не на уровне пещерного человека, то: 1️⃣ Можете посмотреть мой список bad practice 2️⃣ Менторство с 0 до мидла
· 28.09.2025
Обсёрверы придумали трусы!) мы вообще за делегаты, а action только с event предлагаем использовать. з.ы. Кстати, вызов Camera.main давно уже пофикшен ;)
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён