我们创建一个HSlider,并设置其最大和最小值与总线所允许的最大和最小音量一致。
设置步幅为0.1。
extends Node2D
func _on_HSlider_value_changed(value):
AudioServer.set_bus_volume_db(1,value)
pass
打开底部的“音频”面板,创建新的总线并重命名为“bgm”。
创建一个 AudioStreamPlayer节点,并拖入你的背景音乐素材文件。勾选Autoplay,这样场景运行时,就会自动播放背景音乐。
将Bus属性设为‘bgm“,这样背景音乐就由‘bgm“这个通道进行管理。
运行后,拖动滑块,就可以实现对背景音乐的音量控制。
一键静音
我们在阿里巴巴图标库中随便找一套可用的音量和静音图标。
为HSlider添加一个ToolButton子节点。
设置ToolButton的默认图标为音量图标,勾选Toggle Mode。
我们链接toggled信号到脚本。
extends Node2D
var normal_icon = load("res://音量.png")
var mute_icon = load("res://静音.png")
onready var muteBtn = $HSlider/muteBtn
func _on_HSlider_value_changed(value):
AudioServer.set_bus_volume_db(1,value) # 设置BGM的音量
pass
# 设置静音与否
func _on_ToolButton_toggled(button_pressed):
AudioServer.set_bus_mute(1,button_pressed) # 设置BGM通道是否静音
if button_pressed:
muteBtn.icon = mute_icon
else:
muteBtn.icon = normal_icon
pass