Hi!
I’m trying to understand how UProjectileMovementComponent
works. In the class constructor I have:
ABall::ABall()
{
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = false;
CollisionComp =
CreateDefaultSubobject<UBoxComponent>(TEXT("Box Collider"));
BallMesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Ball Mesh"));
RootComponent = CollisionComp;
BallMesh->SetupAttachment(CollisionComp);
ProjectileMovementComponent =
CreateDefaultSubobject<UProjectileMovementComponent>(TEXT("Ball Movement Component"));
ProjectileMovementComponent->MaxSpeed = 1300.f;
ProjectileMovementComponent->InitialSpeed = 1300.f;
ProjectileMovementComponent->ProjectileGravityScale = .0f;
ProjectileMovementComponent->bAutoActivate = false;
}
And in another method:
void ABall::Fire()
{
ProjectileMovementComponent->SetVelocityInLocalSpace(FVector(-1.f, 1.f, 0.f) * 1300.f);
}
And the ball moves without calling Activate()
.
Don’t I need to call it to move the projectile (the ball)?
Thanks!