Всем привет, подскажите насколько валидно использовать ивенты работая с юнити?

Не будет ли проблем с оптимизацией или со сложностью организации, может быть проще просто продолжать делать условия и через ссылку вызывать нужные методы. Может кто может поделиться опытом

25 ответов

34 просмотра

я часто юзаю ивенты в контексте сцены. зенжект + ивенты. Они позволяют в любой момент отключить ненужный объект без нарушения вызовов остальных функций. Но есть минус - их тяжело отследить. Поэтому правильно продумай архитектуру проекта

Илья-Повстяный Автор вопроса
Vadim Veretilnyi
я часто юзаю ивенты в контексте сцены. зенжект + и...

А можно ли немного больше примеров использования их, долго думал за них, потому что связи и ссылки начали казаться сложными, но все же опасаюсь использовать, что бы не усложнить проект еще больше

Евент басс как наркотик, один раз попробуешь - сложно отказаться. Удобная штука для игр, но несёт ряд потенциальных проблем. По поводу оптимизации - ивенты c# работают довольно быстро, от юнити такое, намного медленнее

Илья-Повстяный Автор вопроса
Александр
Евент басс как наркотик, один раз попробуешь - сло...

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

ну я все на ивенты почти повесил, даже там где посути только игрок реагирует, зачем эти тонны ссылок друг на друга?

Илья Повстяный
В каких случаях лучше использовать ивент, а где лу...

Если тебя нужна слабая связь между объектами - лучше их использовать через какого то посредника, тот же EventBus. То есть контроллер кубов, к примеру, может знать про кубов, можно вызывать метод. Но какой нибудь класс из другой системы должен просто обрабатывать событие.

Алексей
ну я все на ивенты почти повесил, даже там где пос...

Вопрос в том как эту тонну ссылок прокидывать) Потому что следить за тоннами ивентов это такое себе решение, обычно тут di юзают и он самостоятельно и красиво все раскидывает как ты ему укажешь

Никита
Вопрос в том как эту тонну ссылок прокидывать) Пот...

Я использую что то типа иерархической инициализации(хз как это назвать правильно), просто не люблю зенжект. Это позволяет делать логику без монобехов и удобно зависимости зависимости прокидовать.

Никита
Вопрос в том как эту тонну ссылок прокидывать) Пот...

У такого подхожа еще один плюс - все ссылки в одном месте, если что то слетает - ты сразу об этом знаешь.

Никита
Зачем зенжект когда есть vСontainer)

Соглы, но по нему не так много материалов, а опыта в зенджекс у меня мало

Александр
Я использую что то типа иерархической инициализаци...

Правильно это называется DI. Просто ручной с таким подходом )

Никита
Зачем зенжект когда есть vСontainer)

Так и не понял в чем его преимущества, просто то же самое но меньше фичей как по мне

Александр
Соглы, но по нему не так много материалов, а опыта...

У него есть прекрасная документация. Всё остальное — это базовое понимание работу DI. Реализации и подходы одинаковые везде.

Drawing Dead
Так и не понял в чем его преимущества, просто то ж...

Отсутствие легаси и намного более высокая производительность

Drawing Dead
Так и не понял в чем его преимущества, просто то ж...

Быстрее выше сильнее зенжекта и не тащит с собой тонну легаси которое может пригодиться одному разработчику из тысячи но которое все равно есть

Drawing Dead
Он без рефлексии вроде сделан да?

Без рефлексии такие вещи реализовать не получится ) Там есть AOT генератор

Никита
Быстрее выше сильнее зенжекта и не тащит с собой т...

боюсь представить сколько легаси в самом юнити зарыто

Drawing Dead
боюсь представить сколько легаси в самом юнити зар...

Ну с легаси юнитеков ты ничего не сделаешь, хотя они вроде как уже который год переписывают движок в преддверии релиза ecs плюс перехода с моно на дотнет, а вот выбрать между двумя di фреймворками ты можешь)

NaNaNaS
Можно поподробнее, как это работает?

https://freecontent.manning.com/dependency-injection-in-net-2nd-edition-understanding-the-composition-root/

Похожие вопросы

Обсуждают сегодня

Доброе утро, а кто то делал Google аналитику через php ? curl_setopt($ch, CURLOPT_NOSIGNAL, true); Это должно быть async без ожидания ответа. Вообще php нормально с таким с...
Max Dubovsky
6
Привет, коллеги! Возникла задача ограничить максимальный размер вложений для определённых расширений, например, чтобы для изображений лимит был 10 МБ, а для видео — 100 МБ. Ог...
Andro
1
Всем здравствуйте, Я использую LibUsbDotNet, пытаясь написать библиотека (под linux/Mac OS) для взаимодействия с usb-устройством, который отправляет текст на дисплей покупат...
Асылбек Анарбай
2
Народ, есть у кого идеи или примеры как привязать softDelete трейт к модели файла или были случаи пропажи фоток? На проекте рандомным образом, со слов клиента, пропали фотки у...
XAKFULL XAKEROVICH
3
Это переведённый текст с английского. Я не говорю на русском, но могу использовать переводчик Телеграм. Приветствую! Я начинающий веб-разработчик и все еще учусь. В настояще...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
3
привет вопрос по telegraph laravel как сделать проверку на наличие фото/видео при отправки сообщения пользователем моему боту? принимаю сообщения через protected function hand...
Dororo Steeeve
1
А не хотим ли мы развлечься? 😉 Но так чтобы с пользой для наших профессиональных навыков?? 👨‍🎓👩‍🎓 Предлагаю на октябрь запланировать тестовый запуск новой командной игры "Игр...
Andrii Kurdiumov
2
Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Telegram server says - Bad Request: chat not found Telegram server says - Forbidden: bot is not a member of the channel chat Ребя, кто-то представляет себе точно, почему на ...
Mars BATYA [NYА]
4
Парни, в 3 версии октября кто сталкивался с тем что System\Models\SettingModel не сохраняет данные настроек в админке?
Эд
5
Карта сайта