Merge pull request #54369 from S0yKaf/fix-hardcoded-ray-distance

Fix hardcoded raycast distance in viewport object picking
This commit is contained in:
Rémi Verschelde 2021-11-01 21:01:44 +01:00 committed by GitHub
commit 96ce806b2f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -715,10 +715,11 @@ void Viewport::_process_picking() {
if (camera_3d) {
Vector3 from = camera_3d->project_ray_origin(pos);
Vector3 dir = camera_3d->project_ray_normal(pos);
real_t far = camera_3d->far;
PhysicsDirectSpaceState3D *space = PhysicsServer3D::get_singleton()->space_get_direct_state(find_world_3d()->get_space());
if (space) {
bool col = space->intersect_ray(from, from + dir * 10000, result, Set<RID>(), 0xFFFFFFFF, true, true, true);
bool col = space->intersect_ray(from, from + dir * far, result, Set<RID>(), 0xFFFFFFFF, true, true, true);
ObjectID new_collider;
if (col) {
CollisionObject3D *co = Object::cast_to<CollisionObject3D>(result.collider);