Godot Version
4.4
Question
I’m finding it impossible to remove my softbody3d from my raycast query how do I do it? Adding my softbody3d into the rid_array doesn’t remove it from the query.
@onready var soft_body_3d: SoftBody3D = $SoftBody3D
func hit_static() -> void:
var start: Vector3 = soft_body_3d.global_position
var end: Vector3 = start + Vector3(0, -100, 0)
var mask_num: int = Globalmath.get_mask_num([1, 2])
var data: Dictionary = Globalmath.castrays(soft_body_3d, start, end, mask_num, false, [])
var data2: Dictionary = Globalmath.castrays(soft_body_3d, start, end, mask_num, false, [data.collider])
print_debug("hit_static: start = ",start," data = ",data," data2 = ",data2)
func castrays(node: Variant, start: Vector3, end: Vector3, col_mask_num: int, hitareas: bool, rid_array: Array) -> Dictionary:
var space_state = node.get_world_3d().direct_space_state
var query = PhysicsRayQueryParameters3D.create(start, end, col_mask_num, rid_array)
query.collide_with_areas = hitareas
#if rid_array != []:
# query.exclude = rid_array
var result: Dictionary = space_state.intersect_ray(query)
return result