diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2022-08-22 12:20:39 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-22 12:20:39 +0200 |
commit | 4e7be222e51f47dc022726cb85fc3ab33bb6567c (patch) | |
tree | fa252cd6ef9b8571aeb1cfc3cda232ad105950a7 /scene/3d/ray_cast_3d.cpp | |
parent | 8a1e5980116355024cd7a7ce0c15db7d4ecb200a (diff) | |
parent | 6bc0be16a54862af2f75c8ed12109c079349ad17 (diff) |
Merge pull request #64385 from paulloz/raycast-collider-rid
Diffstat (limited to 'scene/3d/ray_cast_3d.cpp')
-rw-r--r-- | scene/3d/ray_cast_3d.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/scene/3d/ray_cast_3d.cpp b/scene/3d/ray_cast_3d.cpp index 2db5ab2d4e..a45ef52452 100644 --- a/scene/3d/ray_cast_3d.cpp +++ b/scene/3d/ray_cast_3d.cpp @@ -88,6 +88,10 @@ Object *RayCast3D::get_collider() const { return ObjectDB::get_instance(against); } +RID RayCast3D::get_collider_rid() const { + return against_rid; +} + int RayCast3D::get_collider_shape() const { return against_shape; } @@ -224,12 +228,14 @@ void RayCast3D::_update_raycast_state() { if (dss->intersect_ray(ray_params, rr)) { collided = true; against = rr.collider_id; + against_rid = rr.rid; collision_point = rr.position; collision_normal = rr.normal; against_shape = rr.shape; } else { collided = false; against = ObjectID(); + against_rid = RID(); against_shape = 0; } } @@ -302,6 +308,7 @@ void RayCast3D::_bind_methods() { ClassDB::bind_method(D_METHOD("force_raycast_update"), &RayCast3D::force_raycast_update); ClassDB::bind_method(D_METHOD("get_collider"), &RayCast3D::get_collider); + ClassDB::bind_method(D_METHOD("get_collider_rid"), &RayCast3D::get_collider_rid); ClassDB::bind_method(D_METHOD("get_collider_shape"), &RayCast3D::get_collider_shape); ClassDB::bind_method(D_METHOD("get_collision_point"), &RayCast3D::get_collision_point); ClassDB::bind_method(D_METHOD("get_collision_normal"), &RayCast3D::get_collision_normal); |