我们创建一个HSlider,并设置其最大和最小值与总线所允许的最大和最小音量一致。
image.png
设置步幅为0.1。
image.png

  1. extends Node2D
  2. func _on_HSlider_value_changed(value):
  3. AudioServer.set_bus_volume_db(1,value)
  4. pass

打开底部的“音频”面板,创建新的总线并重命名为“bgm”。
image.png
创建一个 AudioStreamPlayer节点,并拖入你的背景音乐素材文件。勾选Autoplay,这样场景运行时,就会自动播放背景音乐。
将Bus属性设为‘bgm“,这样背景音乐就由‘bgm“这个通道进行管理。
image.png
运行后,拖动滑块,就可以实现对背景音乐的音量控制。

一键静音

我们在阿里巴巴图标库中随便找一套可用的音量和静音图标。
image.png
为HSlider添加一个ToolButton子节点。
image.png
image.png
设置ToolButton的默认图标为音量图标,勾选Toggle Mode。
image.png
我们链接toggled信号到脚本。
image.png

  1. extends Node2D
  2. var normal_icon = load("res://音量.png")
  3. var mute_icon = load("res://静音.png")
  4. onready var muteBtn = $HSlider/muteBtn
  5. func _on_HSlider_value_changed(value):
  6. AudioServer.set_bus_volume_db(1,value) # 设置BGM的音量
  7. pass
  8. # 设置静音与否
  9. func _on_ToolButton_toggled(button_pressed):
  10. AudioServer.set_bus_mute(1,button_pressed) # 设置BGM通道是否静音
  11. if button_pressed:
  12. muteBtn.icon = mute_icon
  13. else:
  14. muteBtn.icon = normal_icon
  15. pass

image.png
image.png