mirror of
https://github.com/godotengine/godot.git
synced 2025-04-13 01:00:35 +08:00
Merge pull request #102329 from YeldhamDev/fix_camera_debug_crash
Fix runtime crash with 3D selection with no camera
This commit is contained in:
commit
1d84cab0b0
@ -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();
|
||||
|
Loading…
x
Reference in New Issue
Block a user