Result
Blueprit
item.h
private: float RunningTime; float Amplitude = 0.5f; float TimeConstant = 5.f;
item.cpp
void AItem::Tick(float DeltaTime) { Super::Tick(DeltaTime); RunningTime += DeltaTime; float DeltaZ = Amplitude * FMath::Sin(RunningTime * TimeConstant); AddActorWorldOffset(FVector(0.f, 0.f, DeltaZ)); DRAW_SPHERE_SingleFrame(GetActorLocation()); DRAW_VECTOR_SingleFrame(GetActorLocation(), GetActorLocation() + GetActorForwardVector() * 100); }