Пользовательская задача.
Создана некая зона, при включении которой, цвет всех игровых объектов внутри меняется.
Как решается задача
Создан Actor, с коллизией. При включении выбираем все actor с которыми она контактирует.
Далее у всех этих actor по очереди вызывается get children components, который возвращает компоненты. Далее компонентам меняется материал.
Проблема:
- если у static mesh component ( которые являются частью Actor ) включена physic simulate, то он не возвращается в списке объектов (метод get children components) !
Как это решить?
p.s.
Я нашел на офф форуме уточнение, что это не баг а фича.
https://forums.unrealengine.co… s/370355/4
цитата:
“When components start to simulate, they will detach from their parent, as simulation always is done in world space.”
p.p.s.
Сделал по описанному в ссылке костылю, когда физики нет, получили объекты, а потом включаем физику. Не работает. Параметр переключается, но объект так же висит в воздухе. Если врубить физику вручную через галочку - все работает.
p.p.p.s
Очевидно что это фундаментальная операция в игромеханике, поэтому уверен что решение есть или просто используется другой вообще подход.