在本页

ParticleEmitter3D QML Type

逻辑粒子的发射器更多

Import Statement: import QtQuick3D.Particles3D
Since: Qt 6.2
Inherits:

Node

Inherited By:

TrailEmitter3D

属性

方法

  • vector3d burst(int count)
  • vector3d burst(int count, int duration)
  • vector3d burst(int count, int duration, vector3d position)

详细说明

该元素以给定的起始属性向ParticleSystem3D 发射逻辑粒子。

ParticleSystem3D 中必须至少有一个发射器才会有粒子。有几种不同的方法可以控制发射数量:

  • 设置emitRate ,控制每秒连续发射多少粒子。
  • emitBursts 属性中添加EmitBurst3D 元素,以声明方式发射粒子群。
  • 调用burst() 方法中的任意一个,立即发射粒子群。

属性文档

EmitMode : enumeration [since 6.10]

定义具有形状的发射器的发射模式。

常量说明
ParticleEmitter3D.Default默认发射行为。
ParticleEmitter3D.SurfaceNormal粒子沿表面法线发射。需要一个粒子形状。如果发射器是跟踪发射器,则表面法线将从跟踪粒子继承。
ParticleEmitter3D.SurfaceReflected粒子沿速度矢量和表面法线的反射方向发射。如果发射器是轨迹发射器,则表面法线和速度从跟随粒子继承。需要粒子形状。

此属性在 Qt 6.10 中引入。

depthBias : real

保存发射器的深度偏置。在对物体进行排序时,深度偏差会被加到物体与摄像机的距离上。这可以用来强制相邻物体之间的渲染顺序,否则这些物体在不同帧中的渲染顺序可能会不同。负值会使排序值更靠近摄像机,而正值则会使其离摄像机更远。

emitBursts : List<EmitBurst3D>

该属性使用EmitBurst3D 元素列表来声明定义突发。如果事先知道爆发的开始时间、数量和持续时间,使用该属性比调用burst() 和Timer 等方法更好。

例如,开始时发射 100 个粒子,2 秒后发射 50 个粒子:

ParticleEmitter3D {
    emitBursts: [
        EmitBurst3D {
            time: 0
            amount: 100
        },
        EmitBurst3D {
            time: 2000
            amount: 50
        }
    ]
}

另请参阅 burst() 。

emitMode : EmitMode [default: ParticleEmitter3D.Default, since 6.10]

该属性定义了具有形状的发射器的发射模式。

该属性在 Qt 6.10 中引入。

emitRate : real

该属性定义了以每秒粒子数为单位的恒定发射率。例如,如果 emitRate 为 120 且系统以每秒 60 帧的速度运行,则每帧都会发射 2 个新粒子。

默认值为0

enabled : bool

如果 enabled(启用)设置为false ,则该辐射器不会发射任何粒子。通常这用于有条件地开启或关闭发射器。如果您想继续发射爆裂粒子,请将emitRate 保持为 0,而不要将其切换为false

默认值为true

lifeSpan : int

该属性以毫秒为单位定义单个粒子的寿命。

默认值为1000

另请参阅 lifeSpanVariation

lifeSpanVariation : int

该属性以毫秒为单位定义单个粒子的寿命变化。

例如,发射的粒子将在 3 至 4 秒之间存在:

ParticleEmitter3D {
    ...
    lifeSpan: 3500
    lifeSpanVariation: 500
}

默认值为0

另请参阅 lifeSpan

particle : Particle3D

该属性定义了发射器发射的逻辑粒子。发射器必须定义一个粒子,否则不会发射任何东西。粒子可以是SpriteParticle3DModelParticle3D

particleEndScale : real

该属性定义了粒子lifeSpan 末端的粒子比例乘数。若要改变粒子末端的尺寸,请使用particleEndScaleVariation 。当该值为负数时,末端尺度与particleScale 相同,因此在粒子lifeSpan 时尺度不会改变。

默认值为-1.0

另请参见 particleScaleparticleScaleVariation

particleEndScaleVariation : real

该属性定义了粒子在末端的比例变化。当值为负数时,particleScaleVariation 也用于末端缩放。例如,发射粒子的起始比例为 0.5 - 1.5,结束比例为 1.0 - 5.0:

ParticleEmitter3D {
    ...
    particleScale: 1.0
    particleScaleVariation: 0.5
    particleEndScale: 3.0
    particleEndScaleVariation: 2.0
}

默认值为-1.0

另请参阅 particleEndScale

particleRotation : vector3d

该属性定义了粒子在开始时的旋转。旋转度以欧拉角为单位。

另请参阅 particleRotationVariation

particleRotationVariation : vector3d

该属性定义了粒子在开始时的旋转变化。旋转变化定义为欧拉角的度数。

例如,以完全随机的旋转方式发射粒子:

ParticleEmitter3D {
    ...
    particleRotationVariation: Qt.vector3d(180, 180, 180)
}

另请参阅 particleRotation

particleRotationVelocity : vector3d

该属性定义了粒子在开始时的旋转速度。旋转速度定义为以欧拉角为单位的每秒度数。

另请参阅 particleRotationVelocityVariation

particleRotationVelocityVariation : vector3d

该属性定义粒子的旋转速度变化。旋转速度变化以欧拉角为单位定义为每秒度数。

例如,以每秒-100 至 100 度的随机旋转速度向任意方向发射粒子:

ParticleEmitter3D {
    ...
    particleRotationVariation: Qt.vector3d(180, 180, 180)
    particleRotationVelocityVariation: Qt.vector3d(100, 100, 100)
}

另请参阅 particleRotationVelocity

particleScale : real

该属性定义了粒子开始时的比例乘数。若要改变粒子大小,请使用particleScaleVariation

默认值为1.0

另请参阅 particleEndScaleparticleScaleVariation

particleScaleVariation : real

该属性定义了粒子的比例变化。例如,以 0.5 - 1.5 的比例发射粒子:

ParticleEmitter3D {
    ...
    particleScale: 1.0
    particleScaleVariation: 0.5
}

默认值为0.0

另请参阅 particleScaleparticleEndScaleVariation

reversed : bool [default: false, since 6.10]

此属性可反转粒子时间,即发射的粒子从结束时间运行到开始时间。

此属性在 Qt 6.10 中引入。

shape : ParticleAbstractShape3D

该属性定义了发射区域的可选形状,可以是 或 。它可以是ParticleShape3DParticleModelShape3D 。形状会根据发射器节点属性进行缩放、定位和旋转。当形状fill 属性设置为 false 时,发射只从形状的表面进行。

如果未定义形状,则从发射器节点的中心点发射。

system : ParticleSystem3D

该属性定义了发射器的ParticleSystem3D 。如果系统是发射器的直接父级,则无需定义此属性。

velocity : Direction3D

该属性可用于设置发射粒子的起始速度。如果未设置速度,粒子开始时将一动不动,速度来自affectors (如果使用的话)。

方法文档

vector3d burst(int count)

该方法会立即从该发射器发射count 量的粒子。

vector3d burst(int count, int duration)

该方法会在接下来的duration 毫秒内从该发射器发射count 量的粒子。

vector3d burst(int count, int duration, vector3d position)

该方法会在接下来的duration 毫秒内从该发射器发射count 量的粒子。粒子的发射方式与发射器在position 时的发射方式相同,但所有其他属性不变。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.