Browse Source

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

Fix hardcoded raycast distance in viewport object picking
Rémi Verschelde 3 years ago
parent
commit
96ce806b2f
1 changed files with 2 additions and 1 deletions
  1. 2 1
      scene/main/viewport.cpp

+ 2 - 1
scene/main/viewport.cpp

@@ -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);