PhysicsDirectSpaceState
继承
简要描述
直接访问到PhysicsServer中的空间对象。
描述
直接访问到PhysicsServer中的空间对象。主要用于查询对象和区域是否存在于给定的空间中
方法
返回值类型 | 方法名称 |
---|---|
Array | cast_motion(shape: PhysicsShapeQueryParameters, motion: Vector3) |
Array | collide_shape(shape: PhysicsShapeQueryParameters, max_results: int = 32) |
Dictionary | get_rest_info(shape: PhysicsShapeQueryParameters) |
Dictionary | intersect_ray(from: Vector3, to: Vector3, exclude: Array = [], collision_mask: int = 2147483647, collide_with_bodies: bool = true, collide_with_areas: bool = false) |
Array | intersect_shape(shape: PhysicsShapeQueryParameters, max_results: int = 32) |
方法说明
- cast_motion cast_motion(shape: PhysicsShapeQueryParameters, motion: Vector3)
检查形状是否可以移动到一点。这个方法会返回一个数组,包含了两个浮点型,取值区间在0-1之间,都会显示一小部分motion
,第一个值表示在没有触发碰撞的情况下形状可以移动多远,第二个值表示碰撞发生的点,如果没有检测到碰撞,那么返回的值是[1]
如果形状不能移动,则返回的数组将在Bullet下为[0,0]
,在IdeaXRPhysics下为空。
- collide_shape collide_shape(shape: PhysicsShapeQueryParameters, max_results: int = 32)
检查通过PhysicsShapeQueryParameters对象给出的形状与空间的交点。针对空间对象,返回的数组包含了一组本形状相交位置的集合,参见intersect_shape,可以通过限制返回的结果数量来节省处理的时间
- get_rest_info get_rest_info(shape: PhysicsShapeQueryParameters)
检查通过PhysicsShapeQueryParameters对象给出的形状与空间的交点。对于空间对象,如果它和超过1个以上的形状进行了碰撞,会选择最近的那个,返回的对象包含以下的字典内容:
collider_id
:碰撞对象的ID。
linear_velocity
:碰撞物体的速度Vector3。如果对象是一个Area,那么结果是(0, 0, 0)
normal
:对象在交点处的表面法线。
point
:相交点。
rid
:相交对象的RID。
shape
:碰撞形状的形状索引。
如果形状没有相交,则返回一个空字典。
- intersect_ray intersect_ray(from: Vector3, to: Vector3, exclude: Array = [], collision_mask: int = 2147483647, collide_with_bodies: bool = true, collide_with_areas: bool = false)
与给定空间中的光线相交。返回的对象有以下的字典内容:
collider
:碰撞对象。
collider_id
:碰撞对象的ID。
normal
:对象在交点处的表面法线。
position
:相交点。
rid
:相交对象的RID。
shape
:碰撞形状的形状索引。
如果射线没有相交,则返回空字典。
另外,该方法可以采用要排除在碰撞之外的对象或RID的exclude
数组,表示要检入的物理层的collision_mask
位掩码或
- intersect_shape intersect_shape(shape: PhysicsShapeQueryParameters, max_results: int = 32)
检查通过PhysicsShapeQueryParameters对象提供的形状与空间的相交情况。相交的形状会通过一个数组返回,其中包含了以下的字典内容:
collider
:碰撞对象。
collider_id
:碰撞对象的ID。
rid
:相交对象的RID。
shape
:碰撞形状的形状索引。
可以使用max_results
参数限制交叉点的数量,以减少处理时间。