GPUParticlesAttractor3D

继承: VisualInstance3D < Node3D < Node < Object

派生: GPUParticlesAttractorBox3D, GPUParticlesAttractorSphere3D, GPUParticlesAttractorVectorField3D

3D 粒子吸引器的抽象基类。

描述

粒子吸引器可以将粒子朝吸引器的原点吸,也可以将粒子推离吸引器的原点。

粒子吸引器是实时进行的,可以在游戏过程中进行移动、旋转、缩放。与碰撞形状不同,吸引器支持不统一的缩放。

临时禁用吸引器的方法是将其隐藏,也可以将 strength 设置为 0.0

注意:粒子吸引器只会影响 GPUParticles3D,不影响 CPUParticles3D

属性

float

attenuation

1.0

int

cull_mask

4294967295

float

directionality

0.0

float

strength

1.0


属性说明

float attenuation = 1.0 🔗

  • void set_attenuation(value: float)

  • float get_attenuation()

粒子吸引器的衰减。较高的值会导致粒子在靠近吸引器的原点时逐渐被推动。零值或负值将导致粒子一接触吸引器的边缘就会被快速推动。


int cull_mask = 4294967295 🔗

  • void set_cull_mask(value: int)

  • int get_cull_mask()

将受吸引器影响的粒子渲染层(VisualInstance3D.layers)。默认情况下,所有粒子都受吸引子器影响。

相应地配置粒子节点后,可以取消勾选特定层,以防止某些粒子受到吸引器的影响。例如,如果将吸引器用作法术效果的一部分,但不希望吸引器影响同一位置的不相关天气粒子,则可以使用该属性。

通过在 GPUParticles3D 节点上设置 ParticleProcessMaterial.attractor_interaction_enabled,也可以在每个进程材质的基上禁用粒子吸引。


float directionality = 0.0 🔗

  • void set_directionality(value: float)

  • float get_directionality()

调整吸引器的方向。在 0.0 处,吸引器完全没有方向性:它会将粒子吸引到其中心。在 1.0 中,吸引器是完全定向的:粒子将始终被推向局部 -Z(如果 strength 为负数,则推向 +Z)。

注意:如果 directionality 大于 0.0,则可以通过旋转 GPUParticlesAttractor3D 节点,来改变粒子推送的方向。


float strength = 1.0 🔗

  • void set_strength(value: float)

  • float get_strength()

调整吸引器的强度。如果 strength 为负,则粒子将被反向推动。如果 directionality0.0,则粒子将被推吸引器的原点;如果 directionality 大于 0.0,则粒子将被推向局部 +Z。