PhysicsTestMotionParameters3D

继承: RefCounted < Object

PhysicsServer3D.body_test_motion()提供参数。

描述

通过更改此对象的各种属性,例如运动,您可以配置PhysicsServer3D.body_test_motion()的参数。

属性

bool

collide_separation_ray

false

Array[RID]

exclude_bodies

[]

Array[int]

exclude_objects

[]

Transform3D

from

Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)

float

margin

0.001

int

max_collisions

1

Vector3

motion

Vector3(0, 0, 0)

bool

recovery_as_collision

false


属性说明

bool collide_separation_ray = false 🔗

  • void set_collide_separation_ray_enabled(value: bool)

  • bool is_collide_separation_ray_enabled()

如果设置为true,则使用PhysicsServer3D.SHAPE_SEPARATION_RAY类型的形状来检测碰撞并可以停止运动。在捕捉到地面时可能很有用。

如果设置为false,类型为PhysicsServer3D.SHAPE_SEPARATION_RAY的形状仅在与其他主体重叠时用于分离。这是分离射线形状的主要用途。


Array[RID] exclude_bodies = [] 🔗

要从冲突中排除的可选主体RID数组。使用ColliderObjectBase.get_rid()获取与ColliderObjectBase派生节点关联的RID


Array[int] exclude_objects = [] 🔗

要从冲突中排除的对象唯一实例ID的可选数组。请参阅Object.get_instance_id()


Transform3D from = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) 🔗

在运动应该开始的全局空间中进行变换。通常设置为Item3D.global_transform用于当前身体的变换。


float margin = 0.001 🔗

  • void set_margin(value: float)

  • float get_margin()

增加冲突检测中涉及的形状的大小。


int max_collisions = 1 🔗

  • void set_max_collisions(value: int)

  • int get_max_collisions()

返回冲突的最大数量,在132之间。始终返回检测到的最深碰撞。


Vector3 motion = Vector3(0, 0, 0) 🔗

运动矢量定义要测试的运动的长度和方向。


bool recovery_as_collision = false 🔗

  • void set_recovery_as_collision_enabled(value: bool)

  • bool is_recovery_as_collision_enabled()

如果设置为true,则恢复阶段的任何脱失都将报告为冲突;例如,由CharacterBulk用于改进地板捕捉期间的地板检测。

如果设置为false,则仅报告运动导致的冲突,这通常是所需的行为。