Tales-of-PKMN/game/core/ui_audio.gd

19 lines
620 B
GDScript

extends Node
# Autoload : UiAudio
# Gère les sons d'interface (boutons, menus, pause...) indépendamment des scènes,
# pour qu'un son ne soit jamais coupé par un changement de scène.
@export var bus : StringName = &"SFX" # doit exister dans Audio Bus Layout, sinon utilise "Master"
func play(stream : AudioStream, volume_db : float = 0.0) -> void:
if !stream: return
var player := AudioStreamPlayer.new()
player.stream = stream
player.volume_db = volume_db
player.bus = bus if AudioServer.get_bus_index(bus) != -1 else &"Master"
add_child(player)
player.play()
player.finished.connect(player.queue_free)