Skip to content

Physics & Constraints

Physics

Physics engine queries

__all__ module-attribute

__all__: list[str] = ['raycast', 'raycast_all']

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

LAYER_1 class-attribute

LAYER_1: CollisionLayer

LAYER_10 class-attribute

LAYER_10: CollisionLayer

LAYER_11 class-attribute

LAYER_11: CollisionLayer

LAYER_12 class-attribute

LAYER_12: CollisionLayer

LAYER_13 class-attribute

LAYER_13: CollisionLayer

LAYER_14 class-attribute

LAYER_14: CollisionLayer

LAYER_15 class-attribute

LAYER_15: CollisionLayer

LAYER_16 class-attribute

LAYER_16: CollisionLayer

LAYER_2 class-attribute

LAYER_2: CollisionLayer

LAYER_3 class-attribute

LAYER_3: CollisionLayer

LAYER_4 class-attribute

LAYER_4: CollisionLayer

LAYER_5 class-attribute

LAYER_5: CollisionLayer

LAYER_6 class-attribute

LAYER_6: CollisionLayer

LAYER_7 class-attribute

LAYER_7: CollisionLayer

LAYER_8 class-attribute

LAYER_8: CollisionLayer

LAYER_9 class-attribute

LAYER_9: CollisionLayer

__members__ class-attribute

__members__: dict[str, CollisionLayer]

name property

name: str

value property

value: int

__and__

__and__(arg0: CollisionLayer) -> CollisionLayer

__eq__

__eq__(other: Any) -> bool

__getstate__

__getstate__() -> int

__hash__

__hash__() -> int

__index__

__index__() -> int

__int__

__int__() -> int

__invert__

__invert__() -> CollisionLayer

__ne__

__ne__(other: Any) -> bool

__or__

__or__(arg0: CollisionLayer) -> CollisionLayer

__repr__

__repr__() -> str

__setstate__

__setstate__(state: SupportsInt | SupportsIndex) -> None

__str__

__str__() -> str

__xor__

__xor__(arg0: CollisionLayer) -> CollisionLayer

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

LAYER_1 class-attribute

LAYER_1: CollisionMask

LAYER_10 class-attribute

LAYER_10: CollisionMask

LAYER_11 class-attribute

LAYER_11: CollisionMask

LAYER_12 class-attribute

LAYER_12: CollisionMask

LAYER_13 class-attribute

LAYER_13: CollisionMask

LAYER_14 class-attribute

LAYER_14: CollisionMask

LAYER_15 class-attribute

LAYER_15: CollisionMask

LAYER_16 class-attribute

LAYER_16: CollisionMask

LAYER_2 class-attribute

LAYER_2: CollisionMask

LAYER_3 class-attribute

LAYER_3: CollisionMask

LAYER_4 class-attribute

LAYER_4: CollisionMask

LAYER_5 class-attribute

LAYER_5: CollisionMask

LAYER_6 class-attribute

LAYER_6: CollisionMask

LAYER_7 class-attribute

LAYER_7: CollisionMask

LAYER_8 class-attribute

LAYER_8: CollisionMask

LAYER_9 class-attribute

LAYER_9: CollisionMask

__members__ class-attribute

__members__: dict[str, CollisionMask]

name property

name: str

value property

value: int

__and__

__and__(arg0: CollisionMask) -> CollisionMask

__eq__

__eq__(other: Any) -> bool

__getstate__

__getstate__() -> int

__hash__

__hash__() -> int

__index__

__index__() -> int

__int__

__int__() -> int

__invert__

__invert__() -> CollisionMask

__ne__

__ne__(other: Any) -> bool

__or__

__or__(arg0: CollisionMask) -> CollisionMask

__repr__

__repr__() -> str

__setstate__

__setstate__(state: SupportsInt | SupportsIndex) -> None

__str__

__str__() -> str

__xor__

__xor__(arg0: CollisionMask) -> CollisionMask

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

FluidVsRigid class-attribute

FluidVsRigid: CollisionType

FluidVsSoft class-attribute

FluidVsSoft: CollisionType

RigidVsRigid class-attribute

RigidVsRigid: CollisionType

RigidVsSoft class-attribute

RigidVsSoft: CollisionType

RigidVsStatic class-attribute

RigidVsStatic: CollisionType

SoftVsSoft class-attribute

SoftVsSoft: CollisionType

StaticVsStatic class-attribute

StaticVsStatic: CollisionType

__members__ class-attribute

__members__: dict[str, CollisionType]

name property

name: str

value property

value: int

__eq__

__eq__(other: Any) -> bool

__getstate__

__getstate__() -> int

__hash__

__hash__() -> int

__index__

__index__() -> int

__int__

__int__() -> int

__ne__

__ne__(other: Any) -> bool

__repr__

__repr__() -> str

__setstate__

__setstate__(state: SupportsInt | SupportsIndex) -> None

__str__

__str__() -> str

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