|
@@ -82,6 +82,10 @@ Object *RayCast2D::get_collider() const {
|
|
|
return ObjectDB::get_instance(against);
|
|
|
}
|
|
|
|
|
|
+RID RayCast2D::get_collider_rid() const {
|
|
|
+ return against_rid;
|
|
|
+}
|
|
|
+
|
|
|
int RayCast2D::get_collider_shape() const {
|
|
|
return against_shape;
|
|
|
}
|
|
@@ -203,12 +207,14 @@ void RayCast2D::_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;
|
|
|
}
|
|
|
|
|
@@ -321,6 +327,7 @@ void RayCast2D::_bind_methods() {
|
|
|
ClassDB::bind_method(D_METHOD("force_raycast_update"), &RayCast2D::force_raycast_update);
|
|
|
|
|
|
ClassDB::bind_method(D_METHOD("get_collider"), &RayCast2D::get_collider);
|
|
|
+ ClassDB::bind_method(D_METHOD("get_collider_rid"), &RayCast2D::get_collider_rid);
|
|
|
ClassDB::bind_method(D_METHOD("get_collider_shape"), &RayCast2D::get_collider_shape);
|
|
|
ClassDB::bind_method(D_METHOD("get_collision_point"), &RayCast2D::get_collision_point);
|
|
|
ClassDB::bind_method(D_METHOD("get_collision_normal"), &RayCast2D::get_collision_normal);
|