родительский класс ABaseProjectile, в нём вызывается ProjectileMovement = CreateDefaultSubobject<UProjectileMovementComponent>(ProjectileMovementName);
                  
                  
                  
                  
                  
                  Есть дочерний класс AAxeleratingProjectile, у него в конструкторе прописано AAxeleratingProjectile(const class FObjectInitializer& ObjectInitializer):ABaseProjectile(ObjectInitializer.SetDefaultSubobjectClass<UAcceleratingMovementComponent>(ABaseProjectile::ProjectileMovementName))
                  
                  
                  
                  
                  
                  UAcceleratingMovementComponent - public наследник UProjectileMovementComponent, сам по себе работает прекрасно
                  
                  
                  
                  
                  
                  При инициализации подобным образом в  поле ProjectileMovement оказывается гордый nullptr, причём остаётся он там даже на стадии бегинплея, когда вся инициализация должна уже отработать
                  
                  
                
Так, а ты в конструкторе ABaseProjectile не забыл родительский конструктор вызвать?
ABaseProjectile::ABaseProjectile(const class FObjectInitializer& ObjectInitializer):Super(ObjectInitializer). блупринт пересоздавал несколько раз
Обсуждают сегодня