|
@@ -715,10 +715,11 @@ void Viewport::_process_picking() {
|
|
if (camera_3d) {
|
|
if (camera_3d) {
|
|
Vector3 from = camera_3d->project_ray_origin(pos);
|
|
Vector3 from = camera_3d->project_ray_origin(pos);
|
|
Vector3 dir = camera_3d->project_ray_normal(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());
|
|
PhysicsDirectSpaceState3D *space = PhysicsServer3D::get_singleton()->space_get_direct_state(find_world_3d()->get_space());
|
|
if (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;
|
|
ObjectID new_collider;
|
|
if (col) {
|
|
if (col) {
|
|
CollisionObject3D *co = Object::cast_to<CollisionObject3D>(result.collider);
|
|
CollisionObject3D *co = Object::cast_to<CollisionObject3D>(result.collider);
|