Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

PhysicsShapeQueryParameters3D

继承: RefCounted < Object

PhysicsDirectSpaceState3D.intersect_shape() 提供参数。

描述

你可以通过修改这个对象的形状等属性来为 PhysicsDirectSpaceState3D.intersect_shape() 配置参数。

属性

bool

collide_with_areas

false

bool

collide_with_bodies

true

int

collision_mask

4294967295

Array[RID]

exclude

[]

float

margin

0.0

Vector3

motion

Vector3(0, 0, 0)

Resource

shape

RID

shape_rid

RID()

Transform3D

transform

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


属性说明

bool collide_with_areas = false 🔗

  • void set_collide_with_areas(value: bool)

  • bool is_collide_with_areas_enabled()

如果为 true,则查询将考虑 Area3D


bool collide_with_bodies = true 🔗

  • void set_collide_with_bodies(value: bool)

  • bool is_collide_with_bodies_enabled()

如果为 true,则查询将考虑 PhysicsBody3D


int collision_mask = 4294967295 🔗

  • void set_collision_mask(value: int)

  • int get_collision_mask()

查询将检测的物理层(作为位掩码)。默认情况下,会检测所有碰撞层。有关详细信息,请参阅文档中的 《碰撞层和掩码》


Array[RID] exclude = [] 🔗

将被排除在碰撞之外的对象的 RID 列表。请使用 CollisionObject3D.get_rid() 来获取与派生自 CollisionObject3D 的节点关联的 RID

注意:返回的数组为副本,对其进行的修改不会更新原有属性。更新时,请先修改返回的数组,然后将其重新赋值回该属性。


float margin = 0.0 🔗

  • void set_margin(value: float)

  • float get_margin()

形状的碰撞边距。


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

正在查询的形状的运动。


Resource shape 🔗

将用于碰撞/相交查询的 Shape3D。存储的是实际的引用,可以避免该形状在进行查询时被释放,因此请优先使用这个属性,而不是 shape_rid


RID shape_rid = RID() 🔗

  • void set_shape_rid(value: RID)

  • RID get_shape_rid()

The queried shape's RID that will be used for collision/intersection queries. Use this over shape if you want to optimize for performance using the Servers API:

var shape_rid = PhysicsServer3D.shape_create(PhysicsServer3D.SHAPE_SPHERE)
var radius = 2.0
PhysicsServer3D.shape_set_data(shape_rid, radius)

var params = PhysicsShapeQueryParameters3D.new()
params.shape_rid = shape_rid

# Execute physics queries here...

# Release the shape when done with physics queries.
PhysicsServer3D.free_rid(shape_rid)

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

被查询形状的变换矩阵。