I am looking for way to move in all three axis with different speed of each axis, but my collision must be as Good as movement component.

const float zSpeed= 980.0f;
const float ySpeed= 500.0f;


FVector moveVector = FVector::ZeroVector;
const float deltaSeconds = GetWorld()->GetDeltaSeconds();

const float newYPos = (levelYpos + (desiredLane * laneDistance));
moveVector.Y = (newYPos - GetActorLocation().Y) * ySpeed* deltaSeconds;
moveVector.Z = (0 - GetActorLocation().Z) * zSpeed* deltaSeconds;
AddActorWorldOffset(moveVector, true);

If I use Setactorlocation or addactorworldoffset then sometimes my character gets stuck.

I found that there is no function in unreal made for this and we cannot achieve this by using Setactorlocation, addactorworldoffset, addMovementInput etc .

I am looking for alternative for unity character controller move method in Unreal. I want to move at all 3 axis on different speeds. Also I don’t want to get stuck when I try to move in a direction at time of collision.

Please tell me if you know anything about Unity’s
charactercontroller.move(direction)
Alternative in Unreal engine.