Как стать автором
Обновить
-1
0
Денис Козлов @deniskozlov

Разработчик

Отправить сообщение
Сейчас да, но это исключительно для демонстрации именно этого функционала, в следующей я пишу о уведомлении об изменении состояния и там я не использую проверку в каждом фрейме.
Производительность: если дорого проверять в каждом апдейте, то можно сделать явную подписку на событие


О подписках на событие я писал в статье и объяснил какие трудности могут возникать, и она предполагает сильную связанность компонентов, что противоречит сути статьи.

а без вот этих вот словарей/боксинга/кастов

По поводу боксинга и анбоксинга, я согласен и придумаю как этого избежать, есть несколько идей.
А так ли это хорошо? Может лучше, если будет ошибка, и разработчики узнают о проблеме?

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

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

Да, я в этой статье не продемонстрировал реальное использование данного подхода в проекте и сделаю это в следующей.

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

Про боксинг согласен, я подумаю как использовать дженерик. ECS это то к чему я собираюсь прийти, просто я не могу сурию туторов в одну статью вместить, а DI контейнер я тоже заимплементил и он работает на уровне всего приложения, а не для разрешения зависимостей между компонентами в геймобджекте, для этого тут и RequiredComponent удачно вписывается. А про собственную реализацию контейнера я позжеопубликую.

Порядок OnStart определяется цепочкой наследования в данном случае. Да компилятор не помошник, но это цена за удобство, а на производительности это даже лучше сказывается, так как избегается несколько случаев, когда приходится мониторить что-то в каждом фрейме.
Компонент будет работать, просто он не будет получать значение и ошибки не будет, если вы пробовали запускать решение, то убедились бы в этом.

Такая архитектура из коробки предоставляется. И дальше, кто во что горазд. Я смотрел в сторону ECS, и у меня есть своя реализация, что я опишу в следующих статьях.
Я напишу об этом в следующих статьях, просто пока первую опубликовали. Если интересно, напиши я скину ссылку на группу вк где публикую
2

Информация

В рейтинге
Не участвует
Откуда
Самара, Самарская обл., Россия
Дата рождения
Зарегистрирован
Активность