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.

PhysicsRayQueryParameters2D

继承: RefCounted < Object

PhysicsDirectSpaceState2D.intersect_ray() 提供参数。

描述

通过修改这个对象的射线位置等属性,你可以为 PhysicsDirectSpaceState2D.intersect_ray() 配置参数。

属性

bool

collide_with_areas

false

bool

collide_with_bodies

true

int

collision_mask

4294967295

Array[RID]

exclude

[]

Vector2

from

Vector2(0, 0)

bool

hit_from_inside

false

Vector2

to

Vector2(0, 0)

方法

PhysicsRayQueryParameters2D

create(from: Vector2, to: Vector2, collision_mask: int = 4294967295, exclude: Array[RID] = []) static


属性说明

bool collide_with_areas = false 🔗

  • void set_collide_with_areas(value: bool)

  • bool is_collide_with_areas_enabled()

如果为 true,查询将考虑 Area2D


bool collide_with_bodies = true 🔗

  • void set_collide_with_bodies(value: bool)

  • bool is_collide_with_bodies_enabled()

如果为 true,查询将考虑 PhysicsBody2D


int collision_mask = 4294967295 🔗

  • void set_collision_mask(value: int)

  • int get_collision_mask()

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


Array[RID] exclude = [] 🔗

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

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


Vector2 from = Vector2(0, 0) 🔗

要查询的射线起点,使用全局坐标。


bool hit_from_inside = false 🔗

  • void set_hit_from_inside(value: bool)

  • bool is_hit_from_inside_enabled()

如果为 true,查询会在从形状内部开始时检测到命中。在此情况下,碰撞法线将为 Vector2(0, 0)。不会影响凹多边形形状。


Vector2 to = Vector2(0, 0) 🔗

要查询的射线终点,使用全局坐标。


方法说明

PhysicsRayQueryParameters2D create(from: Vector2, to: Vector2, collision_mask: int = 4294967295, exclude: Array[RID] = []) static 🔗

返回一个新的、预配置的 PhysicsRayQueryParameters2D 对象。使用它可以使用最常见的选项来快速创建查询参数。

var query = PhysicsRayQueryParameters2D.create(global_position, global_position + Vector2(0, 100))
var collision = get_world_2d().direct_space_state.intersect_ray(query)