PhysicsRayQueryParameters3D
继承: RefCounted < Object
为 PhysicsDirectSpaceState3D.intersect_ray() 提供参数。
描述
通过修改这个对象的射线位置等属性,你可以为 PhysicsDirectSpaceState3D.intersect_ray() 配置参数。
属性
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
方法
create(from: Vector3, to: Vector3, collision_mask: int = 4294967295, exclude: Array[RID] = []) static |
属性说明
bool collide_with_areas = false 🔗
如果为 true,则查询将考虑 Area3D。
bool collide_with_bodies = true 🔗
如果为 true,则查询将考虑 PhysicsBody3D。
int collision_mask = 4294967295 🔗
查询将检测的物理层(作为位掩码)。默认情况下,会检测所有碰撞层。有关详细信息,请参阅文档中的 《碰撞层和掩码》。
将被排除在碰撞之外的对象的 RID 列表。请使用 CollisionObject3D.get_rid() 来获取与派生自 CollisionObject3D 的节点关联的 RID。
注意:返回的数组为副本,对其进行的修改不会更新原有属性。更新时,请先修改返回的数组,然后将其重新赋值回该属性。
Vector3 from = Vector3(0, 0, 0) 🔗
要查询的射线起点,使用全局坐标。
如果为 true,查询将命中背部面,这些背部面是启用了背面的凹多边形形状,或高度图形状。
bool hit_from_inside = false 🔗
如果为 true,查询会在从形状内部开始时检测到命中。在此情况下,碰撞法线将为 Vector3(0, 0, 0)。不会影响凹多边形形状和高度图形状。
Vector3 to = Vector3(0, 0, 0) 🔗
要查询的射线终点,使用全局坐标。
方法说明
PhysicsRayQueryParameters3D create(from: Vector3, to: Vector3, collision_mask: int = 4294967295, exclude: Array[RID] = []) static 🔗
返回一个新的、预配置的 PhysicsRayQueryParameters3D 对象。使用它可以使用最常见的选项快速创建查询参数。
var query = PhysicsRayQueryParameters3D.create(position, position + Vector3(0, -10, 0))
var collision = get_world_3d().direct_space_state.intersect_ray(query)