martes, 20 de octubre de 2026

GDScript para Godot 3d 4.7; abre una puerta y emite su sonido;

 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