SoftBulk¶
继承: MeshRender < GeometryRender < VisualRender < Item3D < Item < Object
可变形的3D物理网格。
描述¶
可变形的三维物理网格。用于创建弹性或可变形的物体,如布、橡胶或其他柔性材质。
此外,SoftBulk受到AreaTrigger中定义的风力的影响(参见AreaTrigger.wind_source_path、AreaTrigger.wind_force_magnitude和AreaTrigger.wind_attenuation_factor)。
注意:SoftBulk中存在许多已知错误。因此,不建议将它们用于可能影响应用性的事物(例如蹦床)。
属性¶
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
方法¶
void |
add_collision_exception_with(body: Item) |
get_collision_layer_value(layer_number: int) const |
|
get_collision_mask_value(layer_number: int) const |
|
get_physics_rid() const |
|
get_point_transform(point_index: int) |
|
is_point_pinned(point_index: int) const |
|
void |
|
void |
set_collision_layer_value(layer_number: int, value: bool) |
void |
set_collision_mask_value(layer_number: int, value: bool) |
void |
set_point_pinned(point_index: int, pinned: bool, attachment_path: ItemPath = ItemPath(""), insert_at: int = -1) |
枚举¶
enum DisableMode: 🔗
DisableMode DISABLE_MODE_REMOVE = 0
当Item.process_mode设置为Item.PROCESS_MODE_DISABLED时,从物理模拟中删除以停止与此SoftBulk的所有物理交互。
再次处理Item时自动重新添加到物理模拟中。
DisableMode DISABLE_MODE_KEEP_ACTIVE = 1
当Item.process_mode设置为Item.PROCESS_MODE_DISABLED时,不影响物理模拟。
属性说明¶
SoftBulk在中的物理层。碰撞对象可以存在于32个不同层中的一个或多个中。另见collision_mask。
注意:只有当对象B位于对象A扫描的任何图层中时,对象A才能检测到与对象B的接触。有关详细信息,请参阅文档中的碰撞图层和掩码。
SoftBulk扫描的物理层。碰撞对象可以扫描32个不同层中的一个或多个。另见collision_layer。
注意:只有当对象B位于对象A扫描的任何图层中时,对象A才能检测到与对象B的接触。有关详细信息,请参阅文档中的碰撞图层和掩码。
float damping_coefficient = 0.01 🔗
身体的阻尼系数。当施加力时,更高的值会更明显地减慢身体的速度。
DisableMode disable_mode = 0 🔗
void set_disable_mode(value: DisableMode)
DisableMode get_disable_mode()
定义Item.process_mode设置为Item.PROCESS_MODE_DISABLED时的物理行为。有关不同模式的更多详细信息,请参阅DisableMode。
float drag_coefficient = 0.0 🔗
身体的阻力系数。更高的值会增加身体的空气阻力。
注意:i3D的默认物理实现当前未使用此值。
float linear_stiffness = 0.5 🔗
较高的值会导致身体更僵硬,而较低的值会增加身体的弯曲能力。该值可以在0.0和1.0(包括)之间。
ItemPath parent_collision_ignore = ItemPath("") 🔗
ItemPath到ColliderObjectBase这个SoftBody3D应该避免剪切。
float pressure_coefficient = 0.0 🔗
这个软体的压力系数。模拟这个身体内部的压力积累。更高的值会增加这种效果的强度。
如果true,SoftBulk将响应RayCasts。
int simulation_precision = 5 🔗
增加此值将改善生成的模拟,但可能会影响性能。小心使用。
SoftBody3D的质量。
方法说明¶
void add_collision_exception_with(body: Item) 🔗
将主体添加到该主体不能与之冲突的主体列表中。
Array[PhysicsBulkBase] get_collision_exceptions() 🔗
返回作为此主体的冲突异常添加的节点数组。
bool get_collision_layer_value(layer_number: int) const 🔗
返回collision_layer的指定层是否启用,给定介于1和32之间的layer_number。
bool get_collision_mask_value(layer_number: int) const 🔗
返回collision_mask的指定层是否启用,给定介于1和32之间的layer_number。
返回此主体的PhysicsServer3D使用的内部RID。
Vector3 get_point_transform(point_index: int) 🔗
返回曲面数组中顶点的局部平移。
bool is_point_pinned(point_index: int) const 🔗
如果顶点设置为固定,则返回true。
void remove_collision_exception_with(body: Item) 🔗
从主体不能与之冲突的主体列表中删除主体。
void set_collision_layer_value(layer_number: int, value: bool) 🔗
基于value,启用或禁用collision_layer中的指定层,给定1到32之间的layer_number。
void set_collision_mask_value(layer_number: int, value: bool) 🔗
基于value,启用或禁用collision_mask中的指定层,给定1到32之间的layer_number。
void set_point_pinned(point_index: int, pinned: bool, attachment_path: ItemPath = ItemPath(""), insert_at: int = -1) 🔗
设置表面顶点的固定状态。当设置为true时,可选的attachment_path可以定义固定顶点将附加到的Item3D。