Languid Basil

+9
с 2021
4 подписчика
14 подписок

Насчет пула можно согласиться, но тут тоже проблема в том что размер увеличивается х2. Для оптимизации можно было создать хеш таблицу и получить сложность О(1), но не думаю что объектов в пуле будет так много что нужно над этим заморачиваться

А в чем проблема в моем подходе? EntityManager подписан на каждый из спавнеров и при получении события спавна реагирует соответствующе для каждого типа объекта. Возможно такой подход выйдет из под контроля когда вырастет размер игры, но сейчас все работает отлично

Если паттерн создания общий то и объект будет одмнаковый, разве нет?) Фабрики в моем понимании для того чтобы работу создания объекта поручить другому объекту и благодаря этому не забывать об инициализации или еще о чем нибудь важном

Не совсем какие контроллеры, но EntityManager на Awake подписывается на спавнеров. Я знаю что иметь всю логику в монобехах это не круто с точки зрения оптимизации, но здесь это необходимо

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

Я хочу побольше кодить на шарпе чтобы возвыситься в своем познании) Да и питон мне не оч заходит

Так и происходит. Получив сигнал от инпут системы стат вычитает необходимое количество ресурсов, затем проверяет наличие других хитов (в этот список также входят блоки) и затем если хитов обнаружено не было ищет статы
Тот же щит с маной будет на слое с хитами, все что знает атакущий это то что это тоже хит, я в него попал, вызываю TakeDamage и отрубаюсь. А вот щит маны который ссылается на ману в TakeDamage и решает как этот удар на такое количество урона пережить
Если под броней ты имел ввиду броню как отдельную полоску жизни, то добавим новый лейер для брони и по нему будут бить после хитов но раньше хп. Или же можно будет расширить наследованный класс Health для выполнения логики брони тоже, без добавления нового слоя. У нас в игре такой механики не предполагается но если она появится реализовать ее не будет так сложно

Да, оптимизация важна, но я считаю что читабельность и удобство кода куда важнее чем 2% прирост к производительности
Все таки отсутствие багов юзерам понравится больше да и 2д проект с пиксельной графикой и так не слишком тяжелый, нет нужды жертвовать чем либо ради скорости

1

Хотел еще сказать что не хочу вешать вызов экшенов на клиентов, но понял что их можно вызывать в setter'е) 

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

Количество символов вышло разным вот и обновил, не знаю чему удивляться

Ну думаю я нашел их аналог в хроме) И я не планировал его как нечто коммерческое, "проект чтобы набить руку"

1