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中定义的纹理区域。
教程
属性
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
|
方法
capture_rect ( ) const | |
void | restart ( ) |
枚举
enum DrawOrder:
DRAW_ORDER_INDEX = 0 —- 粒子按发射顺序绘制。
DRAW_ORDER_LIFETIME = 1 —- 按照剩余寿命的顺序绘制粒子。
属性说明
- int amount
Default |
|
Setter | set_amount(value) |
Getter | get_amount() |
在一个发射周期内排放的粒子数(对应于lifetime)。
注意:改变amount将重置粒子发射,因此,在改变amount之前已经排放的所有粒子将被移除。
- DrawOrder draw_order
Default |
|
Setter | set_draw_order(value) |
Getter | get_draw_order() |
粒子绘制顺序。使用DrawOrder值。
- bool emitting
Default |
|
Setter | set_emitting(value) |
Getter | is_emitting() |
如果true
,则正在发射粒子。
- float explosiveness
Default |
|
Setter | set_explosiveness_ratio(value) |
Getter | get_explosiveness_ratio() |
粒子在一个发射周期中的发射速度有多快。如果大于0
,则在下一个循环开始之前会有排放量缺口。
- int fixed_fps
Default |
|
Setter | set_fixed_fps(value) |
Getter | get_fixed_fps() |
粒子系统的帧速率固定为一个值。例如,将值更改为2将使粒子以每秒2帧的速度渲染。注意,这不会减慢粒子系统本身的仿真速度。
- bool fract_delta
Default |
|
Setter | set_fractional_delta(value) |
Getter | get_fractional_delta() |
如果true
,将导致分数增量计算,该显示具有更平滑的粒子显示效果。
- float lifetime
Default |
|
Setter | set_lifetime(value) |
Getter | get_lifetime() |
每个粒子存在的时间,以秒为单位。
- bool local_coords
Default |
|
Setter | set_use_local_coordinates(value) |
Getter | get_use_local_coordinates() |
如果true
,则粒子将使用父节点的坐标空间。如果false
,则使用全局坐标。
- Texture normal_map
Setter | set_normal_map(value) |
Getter | get_normal_map() |
用于texture属性的法线贴图。
注意: Godot希望法线贴图使用X +,Y-和Z +坐标。请参阅this page,以比较流行引擎期望的法线地图坐标。
- bool one_shot
Default |
|
Setter | set_one_shot(value) |
Getter | get_one_shot() |
如果 true
,则只发生一个排放周期。如果在周期内设置 true
,则排放将在周期结束时停止。
- float preprocess
Default |
|
Setter | set_pre_process_time(value) |
Getter | get_pre_process_time() |
粒子系统启动时就好像已经运行了这么多秒一样。
- Material process_material
Setter | set_process_material(value) |
Getter | get_process_material() |
用于处理粒子的 Material 。可以是一个 ParticlesMaterial 或一个 ShaderMaterial 。
- float randomness
Default |
|
Setter | set_randomness_ratio(value) |
Getter | get_randomness_ratio() |
发射寿命随机率。
- float speed_scale
Default |
|
Setter | set_speed_scale(value) |
Getter | get_speed_scale() |
粒子系统的运行速度缩放比例。值0
可用于暂停粒子。
- Texture texture
Setter | set_texture(value) |
Getter | get_texture() |
粒子纹理。如果null
,则粒子将为正方形。
- Rect2 visibility_rect
Default |
|
Setter | set_visibility_rect(value) |
Getter | get_visibility_rect() |
Rect2 确定节点的区域,该区域需要在屏幕上可见才能使粒子系统处于活动状态。
如果当节点进入/退出屏幕时粒子突然出现/消失,则增长矩形。 Rect2 可以通过代码或使用 Particles → Generate Visibility Rect 编辑器工具生成。
方法说明
- Rect2 capture_rect ( ) const
返回一个包含所有现存粒子位置的矩形。
- void restart ( )
重新启动所有现有的粒子。