跳到主要内容

PhysicsDirectSpaceState

继承

Object

简要描述

直接访问到PhysicsServer中的空间对象。

描述

直接访问到PhysicsServer中的空间对象。主要用于查询对象和区域是否存在于给定的空间中

方法

返回值类型方法名称
Arraycast_motion(shape: PhysicsShapeQueryParameters, motion: Vector3)
Arraycollide_shape(shape: PhysicsShapeQueryParameters, max_results: int = 32)
Dictionaryget_rest_info(shape: PhysicsShapeQueryParameters)
Dictionaryintersect_ray(from: Vector3, to: Vector3, exclude: Array = [], collision_mask: int = 2147483647, collide_with_bodies: bool = true, collide_with_areas: bool = false)
Arrayintersect_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:碰撞形状的形状索引。

如果射线没有相交,则返回空字典。

另外,该方法可以采用要排除在碰撞之外的对象或RIDexclude数组,表示要检入的物理层的collision_mask位掩码或


  • intersect_shape intersect_shape(shape: PhysicsShapeQueryParameters, max_results: int = 32)

检查通过PhysicsShapeQueryParameters对象提供的形状与空间的相交情况。相交的形状会通过一个数组返回,其中包含了以下的字典内容:

collider:碰撞对象。

collider_id:碰撞对象的ID。

rid:相交对象的RID

shape:碰撞形状的形状索引。

可以使用max_results参数限制交叉点的数量,以减少处理时间。