Physics & Constraints¶
Physics ¶
Physics engine queries
raycast ¶
raycast(origin: Vector3, direction: Vector3, length: SupportsFloat | SupportsIndex, collision_layer: SupportsInt | SupportsIndex | None = None, ignore_objects: Sequence[Object] = []) -> fusion.RayCastHit
Cast a ray and return the closest hit. collision_layer=None hits every layer.
Example
hit = Physics.raycast(pos, Vector3(0,-1,0), 5.0, CollisionMask.LAYER_1, [self.owner])
raycast_all ¶
raycast_all(origin: Vector3, direction: Vector3, length: SupportsFloat | SupportsIndex, collision_layer: SupportsInt | SupportsIndex | None = None, ignore_objects: Sequence[Object] = []) -> list[fusion.RayCastHit]
Cast a ray and return every hit, sorted nearest-first.
CollisionLayer ¶
CollisionLayer(value: SupportsInt | SupportsIndex)
Collision layer bit flags. Combine multiple with |, e.g. CollisionLayer.LAYER_1 | CollisionLayer.LAYER_3
Members:
LAYER_1
LAYER_2
LAYER_3
LAYER_4
LAYER_5
LAYER_6
LAYER_7
LAYER_8
LAYER_9
LAYER_10
LAYER_11
LAYER_12
LAYER_13
LAYER_14
LAYER_15
LAYER_16
CollisionMask ¶
CollisionMask(value: SupportsInt | SupportsIndex)
Collision mask bit flags. Combine multiple with |, e.g. CollisionMask.LAYER_1 | CollisionMask.LAYER_3
Members:
LAYER_1
LAYER_2
LAYER_3
LAYER_4
LAYER_5
LAYER_6
LAYER_7
LAYER_8
LAYER_9
LAYER_10
LAYER_11
LAYER_12
LAYER_13
LAYER_14
LAYER_15
LAYER_16
CollisionType ¶
CollisionType(value: SupportsInt | SupportsIndex)
The kind of bodies involved in a collision, as reported on CollisionEventData.type
Members:
RigidVsRigid
RigidVsStatic
StaticVsStatic
RigidVsSoft
SoftVsSoft
FluidVsRigid
FluidVsSoft
layer_overlap ¶
layer_overlap(layer_a: SupportsInt | SupportsIndex, mask_a: SupportsInt | SupportsIndex, layer_b: SupportsInt | SupportsIndex, mask_b: SupportsInt | SupportsIndex) -> bool
Check whether an (layer, mask) pair on object A would collide with (layer, mask) on object B