Сейчас да, но это исключительно для демонстрации именно этого функционала, в следующей я пишу о уведомлении об изменении состояния и там я не использую проверку в каждом фрейме.
Производительность: если дорого проверять в каждом апдейте, то можно сделать явную подписку на событие
О подписках на событие я писал в статье и объяснил какие трудности могут возникать, и она предполагает сильную связанность компонентов, что противоречит сути статьи.
а без вот этих вот словарей/боксинга/кастов
По поводу боксинга и анбоксинга, я согласен и придумаю как этого избежать, есть несколько идей.
А так ли это хорошо? Может лучше, если будет ошибка, и разработчики узнают о проблеме?
И да и нет. Я не предлагаю это как единственное правильное решение, я описываю свой опыт и свое видение, и лично мне проще и намного быстрее использовать словари, нежели поля.
При каком-либо усложнении логики чтение и даже отладка превратиться в сущий ад
Дело в привычке, на самом деле и во внимательности. Опять же если вы находите такое решение не приемлемым для себя, то я ж не настаиваю.
А какие плюсы дает система, я так и не получил ответа.
Да, я в этой статье не продемонстрировал реальное использование данного подхода в проекте и сделаю это в следующей.
Вы написали что плохо, по поводу наследований, но не написали почему. Я думаю многим было бы интереснее, и мне в том числе, почему вы так считаете.
По поводу DI котейнера, я использую его на другом уровне, так как считаю что на этом от него мало толка.
И я заимплементил свой, опять же.
Потповоду реактивных расширений. Мне оч интересно, я посмотрю, спасибо.
Про боксинг согласен, я подумаю как использовать дженерик. ECS это то к чему я собираюсь прийти, просто я не могу сурию туторов в одну статью вместить, а DI контейнер я тоже заимплементил и он работает на уровне всего приложения, а не для разрешения зависимостей между компонентами в геймобджекте, для этого тут и RequiredComponent удачно вписывается. А про собственную реализацию контейнера я позжеопубликую.
Порядок OnStart определяется цепочкой наследования в данном случае. Да компилятор не помошник, но это цена за удобство, а на производительности это даже лучше сказывается, так как избегается несколько случаев, когда приходится мониторить что-то в каждом фрейме.
Компонент будет работать, просто он не будет получать значение и ошибки не будет, если вы пробовали запускать решение, то убедились бы в этом.
Такая архитектура из коробки предоставляется. И дальше, кто во что горазд. Я смотрел в сторону ECS, и у меня есть своя реализация, что я опишу в следующих статьях.
О подписках на событие я писал в статье и объяснил какие трудности могут возникать, и она предполагает сильную связанность компонентов, что противоречит сути статьи.
По поводу боксинга и анбоксинга, я согласен и придумаю как этого избежать, есть несколько идей.
И да и нет. Я не предлагаю это как единственное правильное решение, я описываю свой опыт и свое видение, и лично мне проще и намного быстрее использовать словари, нежели поля.
Дело в привычке, на самом деле и во внимательности. Опять же если вы находите такое решение не приемлемым для себя, то я ж не настаиваю.
Да, я в этой статье не продемонстрировал реальное использование данного подхода в проекте и сделаю это в следующей.
Вы написали что плохо, по поводу наследований, но не написали почему. Я думаю многим было бы интереснее, и мне в том числе, почему вы так считаете.
По поводу DI котейнера, я использую его на другом уровне, так как считаю что на этом от него мало толка.
И я заимплементил свой, опять же.
Потповоду реактивных расширений. Мне оч интересно, я посмотрю, спасибо.
Про боксинг согласен, я подумаю как использовать дженерик. ECS это то к чему я собираюсь прийти, просто я не могу сурию туторов в одну статью вместить, а DI контейнер я тоже заимплементил и он работает на уровне всего приложения, а не для разрешения зависимостей между компонентами в геймобджекте, для этого тут и RequiredComponent удачно вписывается. А про собственную реализацию контейнера я позжеопубликую.
Компонент будет работать, просто он не будет получать значение и ошибки не будет, если вы пробовали запускать решение, то убедились бы в этом.
Такая архитектура из коробки предоставляется. И дальше, кто во что горазд. Я смотрел в сторону ECS, и у меня есть своя реализация, что я опишу в следующих статьях.