Trying to get this movment style

How can I get this type of movement?

The player always moves forward even when turning, the player would move forward into the turn even if a turn key was pressed.

E.g I want to move left, my player move forward and turn left until the desired position or rotation is achieved.

Assuming you mean like the beginning of the video, when he’s going in circles, and not later on when he’s doing the twin-stick style movement: Just move them by their forward transform and change their rotation as appropriate (button is down).

transform.position += transform.forward * speed * Time.deltaTime;

Thanks for your reply but while that would work with button down is there a way to make this work while using imputs from the unity input manager?

Vector3 input = new Vector3(Input.GetAxisRaw("Horizontal"),0,Input.GetAxisRaw("Vertical"));
 
 if (input != Vector3.zero) {
 targetRotation = Quaternion.LookRotation(input);
 transform.eulerAngles = Vector3.up * Mathf.MoveTowardsAngle(transform.eulerAngles.y,targetRotation.eulerAngles.y,rotationSpeed * Time.deltaTime);
 }

 currentVelocityMod = Vector3.MoveTowards(currentVelocityMod,input,acceleration * Time.deltaTime);
 Vector3 motion = currentVelocityMod;
 motion *= (Mathf.Abs(input.x) == 1 && Mathf.Abs(input.z) == 1)?.7f:1;
 motion *= (Input.GetButton("Run"))?runSpeed:walkSpeed;
 motion += Vector3.up * -8;

Actually, its best if you use a Rigidbody and change the velocity. If you manually change the position, it can ignore collisions and go right through walls. With a rigidbody, however, if it hits something it will stop or bump if you have a physics material on it.

Rigidbody m_rigidbody;

this.m_rigidbody.velocity += transform.forward * speed * Time.deltaTime;