Merge pull request #102329 from YeldhamDev/fix_camera_debug_crash

Fix runtime crash with 3D selection with no camera
This commit is contained in:
Thaddeus Crews 2025-02-03 08:15:57 -06:00
commit 1d84cab0b0
No known key found for this signature in database
GPG Key ID: 62181B86FE9E5D84

View File

@ -1868,7 +1868,6 @@ void RuntimeNodeSelect::_update_view_2d() {
#ifndef _3D_DISABLED
void RuntimeNodeSelect::_find_3d_items_at_pos(const Point2 &p_pos, Vector<SelectResult> &r_items) {
Window *root = SceneTree::get_singleton()->get_root();
Camera3D *camera = root->get_viewport()->get_camera_3d();
Vector3 ray, pos, to;
if (root->get_viewport()->is_camera_3d_override_enabled()) {
Viewport *vp = root->get_viewport();
@ -1876,6 +1875,11 @@ void RuntimeNodeSelect::_find_3d_items_at_pos(const Point2 &p_pos, Vector<Select
pos = vp->camera_3d_override_project_ray_origin(p_pos);
to = pos + ray * vp->get_camera_3d_override_properties()["z_far"];
} else {
Camera3D *camera = root->get_viewport()->get_camera_3d();
if (!camera) {
return;
}
ray = camera->project_ray_normal(p_pos);
pos = camera->project_ray_origin(p_pos);
to = pos + ray * camera->get_far();