I think the easiest way should be doing it the way it is done by default:
Add a PawnMovementComponent and create a function “AddInput” or something where you call the “AddInputVector” function of the PawnMovementComponent:
virtual void AddInputVector(FVector WorldVector, bool bForce = false);