mirror of
https://github.com/godotengine/godot.git
synced 2026-02-24 12:50:12 +00:00
Emit node configuration warnings for GeometryInstance3D distance fade
The visibility range begin/end margin properties must be set above 0.0 for the fade transition to be visible.
This commit is contained in:
@@ -184,6 +184,7 @@ float GeometryInstance3D::get_visibility_range_end() const {
|
||||
void GeometryInstance3D::set_visibility_range_begin_margin(float p_dist) {
|
||||
visibility_range_begin_margin = p_dist;
|
||||
RS::get_singleton()->instance_geometry_set_visibility_range(get_instance(), visibility_range_begin, visibility_range_end, visibility_range_begin_margin, visibility_range_end_margin, (RS::VisibilityRangeFadeMode)visibility_range_fade_mode);
|
||||
update_configuration_warnings();
|
||||
}
|
||||
|
||||
float GeometryInstance3D::get_visibility_range_begin_margin() const {
|
||||
@@ -193,6 +194,7 @@ float GeometryInstance3D::get_visibility_range_begin_margin() const {
|
||||
void GeometryInstance3D::set_visibility_range_end_margin(float p_dist) {
|
||||
visibility_range_end_margin = p_dist;
|
||||
RS::get_singleton()->instance_geometry_set_visibility_range(get_instance(), visibility_range_begin, visibility_range_end, visibility_range_begin_margin, visibility_range_end_margin, (RS::VisibilityRangeFadeMode)visibility_range_fade_mode);
|
||||
update_configuration_warnings();
|
||||
}
|
||||
|
||||
float GeometryInstance3D::get_visibility_range_end_margin() const {
|
||||
@@ -202,6 +204,7 @@ float GeometryInstance3D::get_visibility_range_end_margin() const {
|
||||
void GeometryInstance3D::set_visibility_range_fade_mode(VisibilityRangeFadeMode p_mode) {
|
||||
visibility_range_fade_mode = p_mode;
|
||||
RS::get_singleton()->instance_geometry_set_visibility_range(get_instance(), visibility_range_begin, visibility_range_end, visibility_range_begin_margin, visibility_range_end_margin, (RS::VisibilityRangeFadeMode)visibility_range_fade_mode);
|
||||
update_configuration_warnings();
|
||||
}
|
||||
|
||||
GeometryInstance3D::VisibilityRangeFadeMode GeometryInstance3D::get_visibility_range_fade_mode() const {
|
||||
@@ -380,6 +383,14 @@ TypedArray<String> GeometryInstance3D::get_configuration_warnings() const {
|
||||
warnings.push_back(TTR("The GeometryInstance3D visibility range's End distance is set to a non-zero value, but is lower than the Begin distance.\nThis means the GeometryInstance3D will never be visible.\nTo resolve this, set the End distance to 0 or to a value greater than the Begin distance."));
|
||||
}
|
||||
|
||||
if ((visibility_range_fade_mode == VISIBILITY_RANGE_FADE_SELF || visibility_range_fade_mode == VISIBILITY_RANGE_FADE_DEPENDENCIES) && !Math::is_zero_approx(visibility_range_begin) && Math::is_zero_approx(visibility_range_begin_margin)) {
|
||||
warnings.push_back(TTR("The GeometryInstance3D is configured to fade in smoothly over distance, but the fade transition distance is set to 0.\nTo resolve this, increase Visibility Range Begin Margin above 0."));
|
||||
}
|
||||
|
||||
if ((visibility_range_fade_mode == VISIBILITY_RANGE_FADE_SELF || visibility_range_fade_mode == VISIBILITY_RANGE_FADE_DEPENDENCIES) && !Math::is_zero_approx(visibility_range_end) && Math::is_zero_approx(visibility_range_end_margin)) {
|
||||
warnings.push_back(TTR("The GeometryInstance3D is configured to fade out smoothly over distance, but the fade transition distance is set to 0.\nTo resolve this, increase Visibility Range End Margin above 0."));
|
||||
}
|
||||
|
||||
return warnings;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user