Files
project-thought-experiment/scripts/audio_subtitle_system.gd

22 lines
499 B
GDScript

extends AudioStreamPlayer3D
@export var voice_lines: Array[VoiceLine]
@onready var textbox: RichTextLabel = $CanvasLayer/PanelContainer/RichTextLabel
var played: bool
func _on_area_3d_body_entered(body: Node3D) -> void:
if !played && body is Player:
start_audio_sequence()
played = true
func start_audio_sequence():
$CanvasLayer/PanelContainer.show()
for line in voice_lines:
textbox.text = line.text
stream = line.audio
play()
await finished
$CanvasLayer/PanelContainer.hide()