summaryrefslogtreecommitdiffstats
path: root/scene/3d/audio_stream_player_3d.cpp
diff options
context:
space:
mode:
authorHugo Locurcio <hugo.locurcio@hugo.pro>2022-04-25 19:36:48 +0200
committerHugo Locurcio <hugo.locurcio@hugo.pro>2022-05-26 20:53:07 +0200
commit93933e408568d647bf294351b6a622944df0321b (patch)
tree121d8ffeff9ba102d901c87a8cd64685ba478740 /scene/3d/audio_stream_player_3d.cpp
parent2e8862887c07708ea0d4cb015902c3001ea6f495 (diff)
downloadredot-engine-93933e408568d647bf294351b6a622944df0321b.tar.gz
Add a gizmo to visualize AudioStreamPlayer3D's audible radius
The ring's color changes depending on the attenuation model chosen, and whether Max Distance is capping the distance the sound can be heard at. Cold colors are used when the volume cap is a "soft" cap (the sound can still be heard past the distance, but only faintly). Warm colors are used when the volume cap is a "hard" cap (the sound can't be heard past the distance at all). White is used for linear fade performed when the attenuation model is Disabled and Max Distance is greater than 0. No ring is drawn when the attenuation model is Disabled and Max Distance is equal to 0 (since the sound can be heard from anywhere).
Diffstat (limited to 'scene/3d/audio_stream_player_3d.cpp')
-rw-r--r--scene/3d/audio_stream_player_3d.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/scene/3d/audio_stream_player_3d.cpp b/scene/3d/audio_stream_player_3d.cpp
index 18a9cc5c8b..7c1fb3779f 100644
--- a/scene/3d/audio_stream_player_3d.cpp
+++ b/scene/3d/audio_stream_player_3d.cpp
@@ -541,6 +541,7 @@ float AudioStreamPlayer3D::get_unit_db() const {
void AudioStreamPlayer3D::set_unit_size(float p_volume) {
unit_size = p_volume;
+ update_gizmos();
}
float AudioStreamPlayer3D::get_unit_size() const {
@@ -669,6 +670,7 @@ void AudioStreamPlayer3D::_bus_layout_changed() {
void AudioStreamPlayer3D::set_max_distance(float p_metres) {
ERR_FAIL_COND(p_metres < 0.0);
max_distance = p_metres;
+ update_gizmos();
}
float AudioStreamPlayer3D::get_max_distance() const {
@@ -729,6 +731,7 @@ float AudioStreamPlayer3D::get_attenuation_filter_db() const {
void AudioStreamPlayer3D::set_attenuation_model(AttenuationModel p_model) {
ERR_FAIL_INDEX((int)p_model, 4);
attenuation_model = p_model;
+ update_gizmos();
}
AudioStreamPlayer3D::AttenuationModel AudioStreamPlayer3D::get_attenuation_model() const {