extends Camera3D
# --- Variables regulables desde el Inspector ---
@export_group("Configuración del Loop")
## La distancia máxima que se acercará y alejará la cámara desde su punto inicial.
@export var amplitud: float = 5.0
## La velocidad a la que se realiza el movimiento de vaivén.
@export var velocidad: float = 2.0
# --- Variables internas del sistema ---
var posicion_inicial: Vector3
var tiempo_acumulado: float = 0.0
func _ready() -> void:
# Guardamos la posición original en la que colocaste la cámara en el editor
posicion_inicial = global_position
func _process(delta: float) -> void:
# 1. Control de salida rápida del juego (Mantenemos tu función anterior)
if Input.is_key_pressed(KEY_ESCAPE):
get_tree().quit()
# 2. Lógica del bucle de enfoque (Acercar / Alejar)
tiempo_acumulado += delta * velocidad
# El seno oscila suavemente entre -1 y 1
var oscilacion: float = sin(tiempo_acumulado)
# Calculamos el desplazamiento en el eje Z (hacia adelante y hacia atrás)
var desplazamiento_z: float = oscilacion * amplitud
# Aplicamos el movimiento respecto a su posición inicial
global_position.z = posicion_inicial.z + desplazamiento_z
-----------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------
Explicacion: Jugando con la camara3d mediante programacion, hace zoomm aleja y acerca aleatoriamente, y se puede regular desde el inspector gracias al @export. La velocidad la amplitud.....