extends Area3D
@export var velocidad: float = 2.0
@export var distancia_x: float = 22222.5
# Rutas exactas basadas en tu árbol de nodos
@onready var mesh_instance: MeshInstance3D = $CollisionShape3D/MeshInstance3D
@onready var audio_player: AudioStreamPlayer3D = $CollisionShape3D/MeshInstance3D/AudioStreamPlayer3D
var posicion_inicial_x: float = 0.0
var moviendo: bool = false
func _ready() -> void:
if mesh_instance:
posicion_inicial_x = mesh_instance.position.x
area_entered.connect(_on_area_entered)
func _process(delta: float) -> void:
if not mesh_instance:
return
var objetivo_x = posicion_inicial_x + distancia_x if moviendo else posicion_inicial_x
mesh_instance.position.x = move_toward(mesh_instance.position.x, objetivo_x, velocidad * delta)
func _on_area_entered(area: Area3D) -> void:
if not moviendo:
moviendo = true
# Reproducimos el sonido 3D de forma segura
if audio_player and audio_player.stream and not audio_player.playing:
audio_player.play()
No hay comentarios:
Publicar un comentario