光线投射2d¶
Inherits: Node2D < CanvasItem < Node < Object
类别: 核心
简要说明¶
查询与光线相交的最近对象。
属性¶
矢量2(0,50) |
||
假 |
||
真 |
||
1 |
||
假 |
||
真 |
方法¶
无效 |
add_exception ( Object node ) |
无效 |
add_exception_rid ( RID rid ) |
无效 |
clear_exceptions ( ) |
无效 |
|
get_collider ( ) const |
|
get_collider_shape ( ) const |
|
get_collision_mask_bit ( int bit ) const |
|
get_collision_normal ( ) const |
|
get_collision_point ( ) const |
|
is_colliding ( ) const |
|
无效 |
remove_exception ( Object node ) |
无效 |
remove_exception_rid ( RID rid ) |
无效 |
set_collision_mask_bit ( int bit, bool value ) |
描述¶
光线投射表示从起点到终点的直线, cast_to
. 它用于查询二维空间,以便沿着光线路径找到最近的对象。
raycast2d可以通过以下方式忽略一些对象:将它们添加到异常列表 add_exception
通过设置适当的碰撞层过滤,或通过使用类型掩码过滤对象类型。
raycast2d可配置为报告与 Area2D S (collide_with_areas )和/或 PhysicsBody2D S (collide_with_bodies )
只有启用的光线投射才能查询空间并报告碰撞。
raycast2d计算每个物理帧的交点(请参见 Node ,并缓存结果,以便稍后使用,直到下一帧。如果物理帧之间(或在同一帧中)需要多个查询,请使用 force_raycast_update 调整光线投射后。
属性描述¶
Vector2 cast_to
违约 |
矢量2(0,50) |
设定器 |
将“强制转换”设置为(值) |
吸气剂 |
把你的角色分配给 |
光线的目标点,相对于光线投射的 position
.
bool collide_with_areas
违约 |
假 |
设定器 |
设置“碰撞”区域(值) |
吸气剂 |
是否与已启用的区域发生冲突? |
如果 true
,与碰撞 Area2D 将报告。
bool collide_with_bodies
违约 |
真 |
设定器 |
设置“碰撞”与“体”(值) |
吸气剂 |
是否与身体碰撞(启用) |
如果 true
,与碰撞 PhysicsBody2D 将报告。
int collision_mask
违约 |
1 |
设定器 |
设置碰撞屏蔽(值) |
吸气剂 |
获取碰撞掩模( |
光线的碰撞遮罩。将仅检测在遮罩中启用的至少一个碰撞层中的对象。
bool enabled
违约 |
假 |
设定器 |
设置启用(值) |
吸气剂 |
是否已启用( |
如果 true
,将报告碰撞。
bool exclude_parent
违约 |
真 |
设定器 |
设置排除父体(值) |
吸气剂 |
get_exclude_parent_body()。 |
如果 true
,父节点将被排除在碰撞检测之外。
方法说明¶
void add_exception ( Object node )
添加碰撞异常,使光线不会报告与指定节点的碰撞。
void add_exception_rid ( RID rid )
添加碰撞异常,使光线不会报告与指定的 RID .
void clear_exceptions ( )
删除此光线的所有碰撞例外。
void force_raycast_update ( )
更新光线的碰撞信息。使用此方法立即更新碰撞信息,而不是等待下一个 _physics_process
例如,如果光线或其父级已更改状态,则调用。
注: enabled == true
不需要执行此操作。
Object get_collider ( ) const
返回光线相交的第一个对象,或者 null
如果没有物体与射线相交(即 is_colliding 收益率 false
)
int get_collider_shape ( ) const
返回光线相交的第一个对象的形状ID,或者 0
如果没有物体与射线相交(即 is_colliding 收益率 false
)
返回碰撞遮罩上的单个位。
Vector2 get_collision_normal ( ) const
返回相交对象在碰撞点的形状的法向。
Vector2 get_collision_point ( ) const
返回光线与最近对象相交的碰撞点。
注: 这一点在 全球的 坐标系。
bool is_colliding ( ) const
返回是否有任何对象与光线的矢量相交(考虑矢量长度)。
void remove_exception ( Object node )
删除碰撞异常,以便光线报告与指定节点的碰撞。
void remove_exception_rid ( RID rid )
删除碰撞异常,以便光线报告与指定的 RID .
设置或清除碰撞遮罩上的单个位。这使得选择扫描区域更加容易。