diff options
author | Hugo Locurcio <hugo.locurcio@hugo.pro> | 2022-04-25 19:36:48 +0200 |
---|---|---|
committer | Hugo Locurcio <hugo.locurcio@hugo.pro> | 2022-05-26 20:53:07 +0200 |
commit | 93933e408568d647bf294351b6a622944df0321b (patch) | |
tree | 121d8ffeff9ba102d901c87a8cd64685ba478740 /scene/3d/audio_stream_player_3d.cpp | |
parent | 2e8862887c07708ea0d4cb015902c3001ea6f495 (diff) | |
download | redot-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.cpp | 3 |
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 { |