Не будет ли проблем с оптимизацией или со сложностью организации, может быть проще просто продолжать делать условия и через ссылку вызывать нужные методы. Может кто может поделиться опытом
я часто юзаю ивенты в контексте сцены. зенжект + ивенты. Они позволяют в любой момент отключить ненужный объект без нарушения вызовов остальных функций. Но есть минус - их тяжело отследить. Поэтому правильно продумай архитектуру проекта
А можно ли немного больше примеров использования их, долго думал за них, потому что связи и ссылки начали казаться сложными, но все же опасаюсь использовать, что бы не усложнить проект еще больше
Евент басс как наркотик, один раз попробуешь - сложно отказаться. Удобная штука для игр, но несёт ряд потенциальных проблем. По поводу оптимизации - ивенты c# работают довольно быстро, от юнити такое, намного медленнее
В каких случаях лучше использовать ивент, а где лучше просто запихнуть еще одну ссылку и вызывать просто метод. В моем понимании нынешнем, эвентами лучше не заигрываться и использовать их для глобальных событий, которых ждут несколько обьектов
ну я все на ивенты почти повесил, даже там где посути только игрок реагирует, зачем эти тонны ссылок друг на друга?
Если тебя нужна слабая связь между объектами - лучше их использовать через какого то посредника, тот же EventBus. То есть контроллер кубов, к примеру, может знать про кубов, можно вызывать метод. Но какой нибудь класс из другой системы должен просто обрабатывать событие.
Вопрос в том как эту тонну ссылок прокидывать) Потому что следить за тоннами ивентов это такое себе решение, обычно тут di юзают и он самостоятельно и красиво все раскидывает как ты ему укажешь
Я использую что то типа иерархической инициализации(хз как это назвать правильно), просто не люблю зенжект. Это позволяет делать логику без монобехов и удобно зависимости зависимости прокидовать.
Зачем зенжект когда есть vСontainer)
У такого подхожа еще один плюс - все ссылки в одном месте, если что то слетает - ты сразу об этом знаешь.
Соглы, но по нему не так много материалов, а опыта в зенджекс у меня мало
Правильно это называется DI. Просто ручной с таким подходом )
Так и не понял в чем его преимущества, просто то же самое но меньше фичей как по мне
У него есть прекрасная документация. Всё остальное — это базовое понимание работу DI. Реализации и подходы одинаковые везде.
Отсутствие легаси и намного более высокая производительность
Он без рефлексии вроде сделан да?
Быстрее выше сильнее зенжекта и не тащит с собой тонну легаси которое может пригодиться одному разработчику из тысячи но которое все равно есть
Без рефлексии такие вещи реализовать не получится ) Там есть AOT генератор
боюсь представить сколько легаси в самом юнити зарыто
Ну с легаси юнитеков ты ничего не сделаешь, хотя они вроде как уже который год переписывают движок в преддверии релиза ecs плюс перехода с моно на дотнет, а вот выбрать между двумя di фреймворками ты можешь)
ecs релизнули уже как и весь DOTS
Можно поподробнее, как это работает?
https://freecontent.manning.com/dependency-injection-in-net-2nd-edition-understanding-the-composition-root/
Обсуждают сегодня