extends Camera3D
# Sensibilidad del ratón (ajusta este valor a tu gusto)
@export var mouse_sensitivity: float = 0.003
# Variables para controlar los límites de rotación vertical (mirar arriba/abajo)
var rotation_x: float = 0.0
func _ready() -> void:
# Captura y oculta el puntero del ratón en la pantalla
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
func _unhandled_input(event: InputEvent) -> void:
# 1. Salir del juego si se presiona la tecla Escape
if event.is_action_pressed("ui_cancel") or (event is InputEventKey and event.pressed and event.keycode == KEY_ESCAPE):
get_tree().quit()
# 2. Control de la cámara con el movimiento del ratón
if event is InputEventMouseMotion and Input.mouse_mode == Input.MOUSE_MODE_CAPTURED:
# Giro horizontal (Eje Y)
rotate_y(-event.relative.x * mouse_sensitivity)
# Giro vertical (Eje X) con límite para no dar la vuelta completa
rotation_x -= event.relative.y * mouse_sensitivity
rotation_x = clamp(rotation_x, deg_to_rad(-89.0), deg_to_rad(89.0))
# Aplicamos la rotación vertical a la cámara
rotation.x = rotation_x
No hay comentarios:
Publicar un comentario