Комментарии 18
Круто, спасибо!
Еще MVVM хорошо подойдет для unity и согласуется со сервисами. А DI слишком много багов тащит, обычный service-локатор и фабрика проще.
Как вы решаете проблему перекрестных ссылок?
А DI слишком много багов тащит
Если речь о DIc, то не замечал. Есть особенности работы того же VContainer, например что он может 2 Singleton инстанса создать, я задавал вопрос мейнтенеру тут.
Но это не мешало использовать его у себя в студии на реальном проекте.
Что касается Zenject, то используется на большом кол-ве проектов во многих компаниях и зарекомендовал себя как достаточно стабильный для продакшена.
Спасибо, отличная статья.
Один из немногих случаев, когда обсуждается действительно архитектура и при этом действительно практичные решения, а на абстрактные колеса машины.
Действительно описаны подходы к решению проблем ЖЦ и организации.
Можно подискутировать по поводу пунктов, разумеется, но это больше вкусовщина.
Лучше напишите продолжение - как организовано переключение сцен и как передаются данные между ними, как организованы интерфейсы, какие правила для использования общего кода, моделей. Как изолируются модули и как используются общие библиотеки (логи, аналитика и т.д)
Empty
— костыль сцена для 100% выгрузки всех ресурсов предыдущей сцены.
Черт, я делал так же и думал что это настолько отвратительный костыль, что все используют гораздо более лучшее решение
По многим пунктам пришел к плюс-минус таким же мыслям. Всегда занятно видеть как другой человек приходит у примерно таким же выводам, как и ты. Пора в лиды значит топать :)
Я пришёл к тому чтобы вообще не использовать сцены, естественно кроме одной
Контент ТОП ! Спасибо =)
Недавно делал импортер который позволяет лить ассеты в обход root пути .unitypackage
https://user-images.githubusercontent.com/7010398/221209668-6680d81d-01b9-4071-9a5c-06f8d13e267a.mp4
Т.к при большом кол-во ассетов в родительская папка довольно быстро засоряется.
Как решали данный момент или оставляли все как есть, т.к многие разработчики все еще не переходят на UPM registry
Прикольная идея, но как быть с обновлением? Так же ручками распаковываешь в эту папку и unity ловит изменения и оверрайдит только их?
если структура координально не меняется, то да Unity автоматом биндит их (например обновляются ассеты или конфиги), но с некоторыми критами, как например при последней обнове Google SDKs, где порефакторили прям структуру package, придется распаковывать ручками в нужную папку
Если перенести ассет в другую папку, юнити попытается обновить их по новому адресу
Но работает не всегда идеально, если добавляются новые файлы в других папках к примеру.
А теперь, коль вы самоучка - дайте список книг, которые нужно прочитать чтобы понять то, о чем вы здесь написали, в контексте терминов, употребляемых вами))
А каком списке книг речь...
Все о чем я тут написал, написано только тут и в моем блоге.
Книг, откуда я это вычитал, попросту нет.
Или есть, но я о них не слышал :)
(Насмотренность + опыт + дикое желание знать больше + постоянный зуд внутри черепа, желающий узнать как что-то работает изнутри) * время
И вот спустя пары кругов борьбы с чувством самозванца - статья.
Если нужен совет как понять - поработайте над коммерческим проектом (или создайте свой) и вернитесь к этой статье через какое-то время :)
Архитектура unity проектов