почитал я чутка про Downcasting
учитывая что метод Cast() это уже анриаловский метод приведения к типу, а не С++
могу предположить что что он и не должен выполнять Downcasting , бай десинг.
Пруфы : начиная с того что это не работает на практике
viewtopic.php?p=58126#p58126, заканчивая ответами на ансверхабе в т.ч. от staff-а.(найти которые можно в гугле "unreal downcasting")
По идее необходимость в downcasting возникает только при неправильно проектировании...
но я еще раз уточню на всякий случай:
если существующий екземпляр класса является дочерним.
то он приводится к родительскому типу без проблем,
Приведенный к родительскому типу этот же обьект записываем в переменную( класса родительского типа),
и вот тут downcasting сработает без проблем чтоб обьект привести назад к дочернему типу.
Код:
//тоесть
class AParentActor{/*...*/};
class AChildActor : public AParentActor{/*...*/};
new AChildActor* CActr;
AParentActor * PActr = Cast<AParentActor >(CActr); //успешно приведет к родительскому типу
AChildActor*Var = Cast<AChildActor>(PActr ); //тоже успешно приведет к дочернему типу
// потому что инстанс обьекта изначально дочернего типа
_________________
we need to go deeper