player movement relative to camera

Godot Version

4.3

Question

`i want to make it so the character can movie forwards in the direction the camera is pointing

extends CharacterBody3D


const SPEED = 5.0
const JUMP_VELOCITY = 4.5


func _physics_process(delta: float) -> void:
	# Add the gravity.
	if not is_on_floor():
		velocity += get_gravity() * delta

	# Handle jump.
	if Input.is_action_just_pressed("ui_accept") and is_on_floor():
		velocity.y = JUMP_VELOCITY

	# Get the input direction and handle the movement/deceleration.
	# As good practice, you should replace UI actions with custom gameplay actions.
	var input_dir := Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
	var direction := (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
	if direction:
		velocity.x = direction.x * SPEED
		velocity.z = direction.z * SPEED
	else:
		velocity.x = move_toward(velocity.x, 0, SPEED)
		velocity.z = move_toward(velocity.z, 0, SPEED)

	move_and_slide()
	
	
	$Camroot.position = $MeshInstance3D.position```

I have absolutely no clue what your question is…

The camera has rotation in it. camera.rotation.y is probably the one you want to use. This assumes your game is not something like a space game or flight simulation.

If it’s flight simulation then you would need all rotation variables applied to your player piece.

If it’s not, then you probably only need make your player piece.rotation.y=camera.rotation.y.
If it’s backwards, then piece.rotation.y+=135, as Godot uses 270 degree format.

Something to note about that 135 degree change, is you would find Godot uses much smaller variables than this for declaring rotation.