extends Camera3D @export var PlayerNode: Node3D; @export var turnSpeed: float = 0.25; @export var XRotationClamp: Vector2 = Vector2(-90, 90) var currentRotation: Vector2 = Vector2(0,0); func _ready() -> void: Input.mouse_mode = Input.MOUSE_MODE_CAPTURED; func _input(event: InputEvent) -> void: if event is InputEventKey && event.key_label == KEY_ESCAPE: Input.mouse_mode = Input.MOUSE_MODE_VISIBLE if event is not InputEventMouseMotion: return var inputRotation = event.relative self.currentRotation += Vector2(inputRotation.y, inputRotation.x) * self.turnSpeed * -1; self.currentRotation.x = clamp(currentRotation.x, XRotationClamp.x, XRotationClamp.y); self.rotation_degrees.x = currentRotation.x; self.PlayerNode.rotation_degrees.y = currentRotation.y