Комментарии 5
CastTo - каварная штука. Избегайте в блюпринтах использования CAstTo к сложным блюпринтам. Кастуйте либо к С++ классу, либо к базовому Блюпринт классу, в котором нет контента.
CastTo требует наличия CDO для блюпринта к которому идет каст.
Пример: у вас есть 10 уровней, в финале каждого стоит босс. Жирный блюпринт с мешем, кучей звуков, кучей анимаций и вот это всё.
Вы решили в каком-то объекте узнать, а что за босс на этом уровне. И выбрали путь проверки через каст. То есть кастуем к Boss1, фейл - значит кастуем к Boss2 и так для всех.
Все хорошо. Но объект реализующий такую логику загрузит все 10 объектов боссов, со всем их контентом. У вас фактически на уровне 1 босс, а загружены будут все.
Поэтому кастуем к С++ классу(это бесплатно, потому что для всех С++ классов CDO создается в любом случае).
Либо кастуем к базовым блюпринтам с минимум контента, которые либо и так есть на уровне, либо очень дешево грузить.
P.S. Кстати, тот факт что CDO Для С++ классов создается всегда - намекает, что грузить контент в конструкторах С++ классов плохая идея в большинстве случаев.
Извините, но откуда вы вычитали факт,что для ВСЕХ C++ классов создаётся свой CDO?
Насколько мне известно, создаётся только на достижимые классы. Причем включая Blueprint классы. Если грузились изначально все классы - soft reference на классы были бы бесполезны.
Статья написана явно для новичков - поэтому, я бы не писал про интерфейсы вообще, либо указал что Unreal чаще опирается на компоненты и механизм GetComponent. Получали как-то legacy от любителей интерфейсов - и это жесть, а не код
Способы взаимодействия в Unreal Engine 5