Particles2D

Inherits: Node2D < CanvasItem < Node < Object

基于GPU的2D粒子发射器。

描述

用于创建各种粒子系统和效果的 2D 粒子节点。 Particles2D 具有一个发射器,可以以给定的速率生成一定数量的粒子。

使用 process_material 属性添加 ParticlesMaterial 以配置粒子外观和行为。或者,您可以添加将应用于所有粒子的 ShaderMaterial

注意:Particles2D 仅在使用 GLES3 渲染器时有效。如果使用 GLES2 渲染器,请改用 CPUParticles2D。您可以通过选择节点将 Particles2D 转换为 CPUParticles2D,单击 2D 编辑器视口顶部的粒子菜单,然后选择转换为 CPUParticles2D

注意:在粒子节点上工作后,记得通过选择它来更新它的 visibility_rect,单击 2D 编辑器视口顶部的粒子菜单,然后选择生成可见矩形。否则,根据相机位置和角度,粒子可能会突然消失。

注意:CPUParticles2D不同,Particles2D目前忽略AtlasTextures中定义的纹理区域。

教程

属性

int

amount

8

DrawOrder

draw_order

0

bool

emitting

true

float

explosiveness

0.0

int

fixed_fps

0

bool

fract_delta

true

float

lifetime

1.0

bool

local_coords

true

Texture

normal_map

bool

one_shot

false

float

preprocess

0.0

Material

process_material

float

randomness

0.0

float

speed_scale

1.0

Texture

texture

Rect2

visibility_rect

Rect2( -100, -100, 200, 200 )

方法

Rect2

capture_rect ( ) const

void

restart ( )

枚举

enum DrawOrder:

  • DRAW_ORDER_INDEX = 0 —- 粒子按发射顺序绘制。

  • DRAW_ORDER_LIFETIME = 1 —- 按照剩余寿命的顺序绘制粒子。

属性说明

Default

8

Setter

set_amount(value)

Getter

get_amount()

在一个发射周期内排放的粒子数(对应于lifetime)。

注意:改变amount将重置粒子发射,因此,在改变amount之前已经排放的所有粒子将被移除。


Default

0

Setter

set_draw_order(value)

Getter

get_draw_order()

粒子绘制顺序。使用DrawOrder值。


Default

true

Setter

set_emitting(value)

Getter

is_emitting()

如果true,则正在发射粒子。


Default

0.0

Setter

set_explosiveness_ratio(value)

Getter

get_explosiveness_ratio()

粒子在一个发射周期中的发射速度有多快。如果大于0,则在下一个循环开始之前会有排放量缺口。


Default

0

Setter

set_fixed_fps(value)

Getter

get_fixed_fps()

粒子系统的帧速率固定为一个值。例如,将值更改为2将使粒子以每秒2帧的速度渲染。注意,这不会减慢粒子系统本身的仿真速度。


Default

true

Setter

set_fractional_delta(value)

Getter

get_fractional_delta()

如果true,将导致分数增量计算,该显示具有更平滑的粒子显示效果。


Default

1.0

Setter

set_lifetime(value)

Getter

get_lifetime()

每个粒子存在的时间,以秒为单位。


Default

true

Setter

set_use_local_coordinates(value)

Getter

get_use_local_coordinates()

如果true,则粒子将使用父节点的坐标空间。如果false,则使用全局坐标。


Setter

set_normal_map(value)

Getter

get_normal_map()

用于texture属性的法线贴图。

注意: Godot希望法线贴图使用X +,Y-和Z +坐标。请参阅this page,以比较流行引擎期望的法线地图坐标。


Default

false

Setter

set_one_shot(value)

Getter

get_one_shot()

如果 true,则只发生一个排放周期。如果在周期内设置 true,则排放将在周期结束时停止。


Default

0.0

Setter

set_pre_process_time(value)

Getter

get_pre_process_time()

粒子系统启动时就好像已经运行了这么多秒一样。


Setter

set_process_material(value)

Getter

get_process_material()

用于处理粒子的 Material 。可以是一个 ParticlesMaterial 或一个 ShaderMaterial


Default

0.0

Setter

set_randomness_ratio(value)

Getter

get_randomness_ratio()

发射寿命随机率。


Default

1.0

Setter

set_speed_scale(value)

Getter

get_speed_scale()

粒子系统的运行速度缩放比例。值0可用于暂停粒子。


Setter

set_texture(value)

Getter

get_texture()

粒子纹理。如果null,则粒子将为正方形。


Default

Rect2( -100, -100, 200, 200 )

Setter

set_visibility_rect(value)

Getter

get_visibility_rect()

Rect2 确定节点的区域,该区域需要在屏幕上可见才能使粒子系统处于活动状态。

如果当节点进入/退出屏幕时粒子突然出现/消失,则增长矩形。 Rect2 可以通过代码或使用 Particles → Generate Visibility Rect 编辑器工具生成。

方法说明

  • Rect2 capture_rect ( ) const

返回一个包含所有现存粒子位置的矩形。


  • void restart ( )

重新启动所有现有的粒子。