Как стать автором
Обновить

Комментарии 5

CastTo - каварная штука. Избегайте в блюпринтах использования CAstTo к сложным блюпринтам. Кастуйте либо к С++ классу, либо к базовому Блюпринт классу, в котором нет контента.
CastTo требует наличия CDO для блюпринта к которому идет каст.

Пример: у вас есть 10 уровней, в финале каждого стоит босс. Жирный блюпринт с мешем, кучей звуков, кучей анимаций и вот это всё.
Вы решили в каком-то объекте узнать, а что за босс на этом уровне. И выбрали путь проверки через каст. То есть кастуем к Boss1, фейл - значит кастуем к Boss2 и так для всех.
Все хорошо. Но объект реализующий такую логику загрузит все 10 объектов боссов, со всем их контентом. У вас фактически на уровне 1 босс, а загружены будут все.

Поэтому кастуем к С++ классу(это бесплатно, потому что для всех С++ классов CDO создается в любом случае).
Либо кастуем к базовым блюпринтам с минимум контента, которые либо и так есть на уровне, либо очень дешево грузить.

P.S. Кстати, тот факт что CDO Для С++ классов создается всегда - намекает, что грузить контент в конструкторах С++ классов плохая идея в большинстве случаев.

Извините, но откуда вы вычитали факт,что для ВСЕХ C++ классов создаётся свой CDO?

Насколько мне известно, создаётся только на достижимые классы. Причем включая Blueprint классы. Если грузились изначально все классы - soft reference на классы были бы бесполезны.

Тесты делали в компании. Делали логирование в разных местах и смотрели что логируется.
Пустой нигде не используемый нигде класс конструировался при старте проекта.
Soft Reference нужны для блюпринтов унаследованных от класса. Или я вас не понял - приведите пример бесполезного софт референса.

Статья написана явно для новичков - поэтому, я бы не писал про интерфейсы вообще, либо указал что Unreal чаще опирается на компоненты и механизм GetComponent. Получали как-то legacy от любителей интерфейсов - и это жесть, а не код

Да, статья действительно написана для новичков

.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий