extends OmniLight3D
# Parámetros editables desde el Inspector
@export_group("Configuración de Balanceo")
@export var speed: float = 2.0 # Velocidad de la oscilación
@export var amplitude: float = 1.5 # Distancia máxima del balanceo (en metros)
@export var axis: Vector3 = Vector3(1, 0, 0) # Eje de movimiento (Por defecto X: izquierda/derecha)
# Guardamos la posición inicial para que el movimiento sea relativo a ella
var initial_position: Vector3
var time_passed: float = 0.0
func _ready() -> void:
# Al arrancar, memorizamos dónde hemos colocado la luz en el mapa
initial_position = position
func _process(delta: float) -> void:
# Acumulamos el tiempo transcurrido
time_passed += delta * speed
# Calculamos el desplazamiento usando la onda seno: sin(t) va de -1 a 1
var offset := axis.normalized() * sin(time_passed) * amplitude
# Aplicamos el balanceo partiendo de la posición inicial
position = initial_position + offset