地区

Inherits: CollisionObject < Spatial < Node < Object

类别: 核心

简要说明

用于检测和三维物理影响的通用区域节点。

方法

bool

get_collision_layer_bit ( int bit ) const

bool

get_collision_mask_bit ( int bit ) const

Array

get_overlapping_areas ( ) const

Array

get_overlapping_bodies ( ) const

bool

overlaps_area ( Node area ) const

bool

overlaps_body ( Node body ) const

无效

set_collision_layer_bit ( int bit, bool value )

无效

set_collision_mask_bit ( int bit, bool value )

信号

  • area_entered ( Area area )

当另一个区域进入时发出。

  • area_exited ( Area area )

当另一个区域退出时发出。

  • area_shape_entered ( int area_id, Area area, int area_shape, int self_shape )

当另一个区域进入时发出,报告哪些区域重叠。

  • area_shape_exited ( int area_id, Area area, int area_shape, int self_shape )

当另一个区域退出时发出,报告哪些区域重叠。

  • body_entered ( Node body )

当物理体进入时发出的。

这个 body 参数可以是 PhysicsBody 或A GridMap 实例(虽然网格图本身不是物理体,但它们将其带碰撞形状的分片注册为虚拟物理体)。

  • body_exited ( Node body )

当物理体退出时发出的。

这个 body 参数可以是 PhysicsBody 或A GridMap 实例(虽然网格图本身不是物理体,但它们将其带碰撞形状的分片注册为虚拟物理体)。

  • body_shape_entered ( int body_id, Node body, int body_shape, int area_shape )

当物理体进入时发出,报告哪些形状重叠。

这个 body 参数可以是 PhysicsBody 或A GridMap 实例(虽然网格图本身不是物理体,但它们将其带碰撞形状的分片注册为虚拟物理体)。

  • body_shape_exited ( int body_id, Node body, int body_shape, int area_shape )

当物理体退出时发出,报告哪些形状重叠。

这个 body 参数可以是 PhysicsBody 或A GridMap 实例(虽然网格图本身不是物理体,但它们将其带碰撞形状的分片注册为虚拟物理体)。

枚举

枚举 SpaceOverride

  • SPACE_OVERRIDE_DISABLED = 0 ---该区域不影响重力/阻尼。

  • SPACE_OVERRIDE_COMBINE = 1 ——该区域将其重力/阻尼值与迄今为止计算的值相加(in priority 命令)。

  • SPACE_OVERRIDE_COMBINE_REPLACE = 2 ——该区域将其重力/阻尼值与迄今为止计算的值相加(in priority 顺序),忽略任何低优先级区域。

  • SPACE_OVERRIDE_REPLACE = 3 ---此区域将替换任何重力/阻尼,甚至是默认值,忽略任何较低优先级的区域。

  • SPACE_OVERRIDE_REPLACE_COMBINE = 4 ---该区域取代目前计算的任何重力/阻尼(in priority 但继续计算其余区域。

描述

检测到的三维区域 CollisionObject 节点重叠、进入或退出。还可以更改或覆盖局部物理参数(重力、阻尼)。

属性描述

违约

0.1

设定器

设置角度阻尼(值)

吸气剂

得到角阻尼

物体在这个区域停止旋转的速率。表示每秒损失的角速度。值的范围从 0 (无阻尼)至 1 (全阻尼)。

违约

“主控形状”

设定器

设置音频总线(值)

吸气剂

获取音频总线

区域音频总线的名称。

  • bool audio_bus_override

违约

设定器

设置音频总线覆盖(值)

吸气剂

是否覆盖音频总线(

如果 true ,该区域的音频总线将覆盖默认音频总线。

  • int collision_layer

违约

1

设定器

设置碰撞层(值)

吸气剂

获取“碰撞层”()

该区域的物理层。可碰撞对象可以存在于32个不同层中的任何一个层中。如果对象A在对象B扫描的任何层中,或者对象B在对象A扫描的任何层中,则会检测到接触。另请参见 collision_mask .

  • int collision_mask

违约

1

设定器

设置碰撞屏蔽(值)

吸气剂

获取碰撞掩模(

物理层对此区域进行扫描以确定碰撞检测。

违约

9.8

设定器

设置重力(值)

吸气剂

获得重力

该区域的重力强度(范围从-1024到1024)。该值乘以重力矢量。这有助于在不改变重力方向的情况下改变重力。

  • float gravity_distance_scale

违约

0.0

设定器

设置重力距离刻度(值)

吸气剂

得到重力距离刻度

点重力的衰减因子。值越大,重力随距离减小的越快。

  • bool gravity_point

违约

设定器

设置重力为点(值)

吸气剂

是重力点

如果 true ,从一个点计算重力(通过 gravity_vec )也见 space_override .

违约

矢量3(0,-1,0)

设定器

设置重力矢量(值)

吸气剂

得到重力矢量

该区域的重力矢量(未标准化)。如果重力是一个点(参见 gravity_point ,这将是吸引人的地方。

违约

0.1

设定器

设置线性阻尼(值)

吸气剂

得到线性阻尼

对象在此区域中停止移动的速率。表示每秒损失的线性速度。值的范围从 0 (无阻尼)至 1 (全阻尼)。

违约

设定器

设置可监视(值)

吸气剂

可监视()

如果 true ,其他监控区域可以检测到该区域。

违约

设定器

设置监视(值)

吸气剂

正在监视(

如果 true ,该区域检测进入和退出该区域的身体或区域。

违约

0.0

设定器

设置优先级(值)

吸气剂

获取优先级()

该地区的优先权。首先处理更高优先级的区域。

  • float reverb_bus_amount

违约

0.0

设定器

设置混响量(值)

吸气剂

获取“混响量”()

该区域对其相关音频应用混响的程度。范围从 01 具有 0.1 精度。

  • bool reverb_bus_enable

违约

设定器

设置使用混响总线(值)

吸气剂

使用的是混响总线(

如果 true ,该区域对其关联的音频应用混响。

违约

“主控形状”

设定器

设置混响总线(值)

吸气剂

获取混响总线(

用于此区域关联音频的混响总线名称。

  • float reverb_bus_uniformity

违约

0.0

设定器

设置混响均匀度(值)

吸气剂

获得一致性

这个区域的混响程度是均匀的。范围从 01 具有 0.1 精度。

违约

0

设定器

设置“空间覆盖”模式(值)

吸气剂

获取空间覆盖模式()。

此区域内重力和阻尼计算的覆盖模式。见 SpaceOverride 对于可能的值。

方法说明

  • bool get_collision_layer_bit ( int bit ) const

返回层掩码上的单个位。

  • bool get_collision_mask_bit ( int bit ) const

返回碰撞遮罩上的单个位。

  • Array get_overlapping_areas ( ) const

返回相交列表 Area s.由于性能原因(碰撞都是同时处理的),这个列表在物理步骤中修改一次,而不是在移动对象后立即修改。考虑改用信号。

  • Array get_overlapping_bodies ( ) const

返回相交列表 PhysicsBody s.由于性能原因(碰撞都是同时处理的),这个列表在物理步骤中修改一次,而不是在移动对象后立即修改。考虑改用信号。

  • bool overlaps_area ( Node area ) const

如果 true ,给定区域与该区域重叠。

注: 移动对象后,此测试的结果不会立即显示。对于性能,重叠列表在物理步骤之前每帧更新一次。考虑改用信号。

  • bool overlaps_body ( Node body ) const

如果 true 给定的物理体与该区域重叠。

注: 移动对象后,此测试的结果不会立即显示。对于性能,重叠列表在物理步骤之前每帧更新一次。考虑改用信号。

这个 body 参数可以是 PhysicsBody 或A GridMap 实例(虽然网格图本身不是物理体,但它们将其带碰撞形状的分片注册为虚拟物理体)。

  • void set_collision_layer_bit ( int bit, bool value )

设置/清除图层蒙版上的各个位。这简化了编辑 Area 的层。

  • void set_collision_mask_bit ( int bit, bool value )

设置/清除碰撞屏蔽上的单个位。这简化了编辑 Area 将此分层 Area 扫描。