Thanks for helping! I seriously doubt anything else would matter so I’m posting my Tick and BeginPlay here:
void ATestFish::Tick( float DeltaTime )
{
Super::Tick( DeltaTime );
if (ProjectileMovement->Velocity.Size() <= 0.f)
{
ProjectileMovement->SetVelocityInLocalSpace(FVector(200.f, 0.f, 0.f));
}
}
void ATestFish::BeginPlay()
{
Super::BeginPlay();
if (!bHasTarget) //
{
ProjectileMovement->HomingTargetComponent = TargetActor->GetRootComponent();
bHasTarget = true;
}
}
I guess also worth mentioning is I have a USceneComponent as root, a UStaticMeshComponent attached to it, and a UProjectileMovementComponent. As I’ve stated above, it’s just so bloody simple that I can’t figure out what goes wrong… The BP is set exactly the same…
EDIT: in case you wonder the bHasTarget:
if (TargetActor)
{
ProjectileMovement->HomingTargetComponent = TargetActor->GetRootComponent();
bHasTarget = true;
}
This is in my ctor. I use SpawnActorDeferred() to spawn fish so I can pass on the “TargetActor” reference. The BeginPlay code is more of a failsafe.