есть некий ЮИ для взаимодействия с миром. Естественно, что надо читать данные разных объектов расположенных в разных asmdef-ах и как-то представлять их игроку. Но мне не хочется делать, что бы ЮИ-асмдеф имел 222 using-а.
Итак, моя пока единственная мысль - сделать интерфейс "IReadableValue" в ЮИ-асмдефе, а потом каждый другой будет наследовать асмдеф ЮИ для именно одного интерфеса. Но тоже как-то не очень ощущается. Есть что подсказать?
asmdef? как так получилось что их очень много?(зачем их много? это же как подпроекты можно сказать)
каждый большой модуль (игрок, ворд, строительство) + из ассет стора несколько отделили
ну так обычно и делают, а потом попадают в депенденси хелл. Могу посоветовать не разделять игровой код на сборки. в отдельные асмдефы выносить только модули атомарные и независимые от других запчасти все взаимодействие организовывать через прокси, ивент басы, команды и прочие коммуникационные паттерны
у меня в отдельных сборках примерно следующее: ресурсный менеджер менеджер игровых событий UI менеджер и все его базовые типы (сами окна в проектном скоупе) сервер апи (который при этом еще и как csproj собирается) сетевые менеджеры, каналы и прочие штуки ... и прочие game agnostic штуки
То-есть, у тебя немного больших, условно, асмдефов. Но у тебя тогда получаются кросс-зависимости? ЮИ менеджер отправляет команду на сервер и сетевой менеджер отправляет ответ в юи?
все кросс коммуникации в рутовой сборке проекта, сами асмдефы почти ни на что не ссылаются
а как рут получает сообщения? Просто читает их со специальных интерфейсов/полей/методов?
Обсуждают сегодня