diff --git a/editor/spatial_editor_gizmos.cpp b/editor/spatial_editor_gizmos.cpp index ba6c713afb6..999353df8d5 100644 --- a/editor/spatial_editor_gizmos.cpp +++ b/editor/spatial_editor_gizmos.cpp @@ -1275,7 +1275,7 @@ void CameraSpatialGizmoPlugin::set_handle(EditorSpatialGizmo *p_gizmo, int p_idx if (camera->get_projection() == Camera::PROJECTION_PERSPECTIVE) { Transform gt2 = camera->get_global_transform(); float a = _find_closest_angle_to_half_pi_arc(s[0], s[1], 1.0, gt2); - camera->set("fov", a * 2.0); + camera->set("fov", CLAMP(a * 2.0, 1, 179)); } else { Vector3 ra, rb; @@ -1285,8 +1285,7 @@ void CameraSpatialGizmoPlugin::set_handle(EditorSpatialGizmo *p_gizmo, int p_idx d = Math::stepify(d, SpatialEditor::get_singleton()->get_translate_snap()); } - if (d < 0) - d = 0; + d = CLAMP(d, 0.1, 16384); camera->set("size", d); } diff --git a/scene/3d/camera.cpp b/scene/3d/camera.cpp index a1794d34a72..bbc81afe3db 100644 --- a/scene/3d/camera.cpp +++ b/scene/3d/camera.cpp @@ -583,12 +583,14 @@ Camera::Projection Camera::get_projection() const { } void Camera::set_fov(float p_fov) { + ERR_FAIL_COND(p_fov < 1 || p_fov > 179); fov = p_fov; _update_camera_mode(); _change_notify("fov"); } void Camera::set_size(float p_size) { + ERR_FAIL_COND(p_size < 0.1 || p_size > 16384); size = p_size; _update_camera_mode(); _change_notify("size");