Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

PhysicsTestMotionParameters2D

继承: RefCounted < Object

PhysicsServer2D.body_test_motion 提供参数。

描述

更改该对象的运动等属性可以配置 PhysicsServer2D.body_test_motion 的参数。

属性

bool

collide_separation_ray

false

RID[]

exclude_bodies

[]

int[]

exclude_objects

[]

Transform2D

from

Transform2D(1, 0, 0, 1, 0, 0)

float

margin

0.08

Vector2

motion

Vector2(0, 0)

bool

recovery_as_collision

false


属性说明

bool collide_separation_ray = false

  • void set_collide_separation_ray_enabled ( bool value )

  • bool is_collide_separation_ray_enabled ( )

如果设置为 true,则 PhysicsServer2D.SHAPE_SEPARATION_RAY 类型的形状将用于检测碰撞,并可以停止运动。吸附到地面时很有用。

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


RID[] exclude_bodies = []

  • void set_exclude_bodies ( RID[] value )

  • RID[] get_exclude_bodies ( )

可选的物体 RID 数组,会排除与这些物体的碰撞。请使用 CollisionObject2D.get_rid 来获取与派生自 CollisionObject2D 的节点关联的 RID


int[] exclude_objects = []

  • void set_exclude_objects ( int[] value )

  • int[] get_exclude_objects ( )

可选的对象唯一实例 ID 数组,会排除与这些实例的碰撞。见 Object.get_instance_id


Transform2D from = Transform2D(1, 0, 0, 1, 0, 0)

运动开始处的全局空间变换。通常设为 Node2D.global_transform,使用当前物体的变换。


float margin = 0.08

  • void set_margin ( float value )

  • float get_margin ( )

增加碰撞检测中涉及的形状的大小。


Vector2 motion = Vector2(0, 0)

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


bool recovery_as_collision = false

  • void set_recovery_as_collision_enabled ( bool value )

  • bool is_recovery_as_collision_enabled ( )

如果设置为 true,则把恢复阶段的穿透汇报为碰撞;使用场景包括 CharacterBody2D 提升地面吸附阶段的地面检测。

如果设置为 false,则只会汇报移动造成的碰撞,一般符合预期行为。