ParticleEmitter3D QML Type
逻辑粒子的发射器更多
Import Statement: | import QtQuick3D.Particles3D |
Since: | Qt 6.2 |
Inherits: | |
Inherited By: |
属性
- depthBias : real
- emitBursts : List<EmitBurst3D>
- emitRate : real
- enabled : bool
- lifeSpan : int
- lifeSpanVariation : int
- particle : Particle3D
- particleEndScale : real
- particleEndScaleVariation : real
- particleRotation : vector3d
- particleRotationVariation : vector3d
- particleRotationVelocity : vector3d
- particleRotationVelocityVariation : vector3d
- particleScale : real
- particleScaleVariation : real
- shape : ParticleAbstractShape3D
- system : ParticleSystem3D
- velocity : Direction3D
方法
- vector3d burst(int count)
- vector3d burst(int count, int duration)
- vector3d burst(int count, int duration, vector3d position)
详细说明
该元素以给定的起始属性向ParticleSystem3D 发射逻辑粒子。
ParticleSystem3D 中必须至少有一个发射器才会有粒子。有几种不同的方法可以控制发射数量:
- 设置emitRate ,控制每秒连续发射多少粒子。
- 在emitBursts 属性中添加EmitBurst3D 元素,以声明方式发射粒子群。
- 调用burst() 方法中的任意一个,立即发射粒子群。
属性文档
depthBias : real |
保存发射器的深度偏置。在对物体进行排序时,深度偏差会被加到物体与摄像机的距离上。这可用于强制相邻对象之间的渲染顺序,否则这些对象在不同帧中的渲染顺序可能会不同。负值会使排序值更靠近摄像机,而正值会使排序值离摄像机更远。
emitBursts : List<EmitBurst3D> |
该属性使用EmitBurst3D 元素列表来声明定义突发。如果事先知道突发的开始时间、数量和持续时间,那么使用该属性要比调用burst() 和Timer 更好。
例如,开始时发射 100 个粒子,2 秒后发射 50 个粒子:
ParticleEmitter3D { emitBursts: [ EmitBurst3D { time: 0 amount: 100 }, EmitBurst3D { time: 2000 amount: 50 } ] }
另请参阅 burst() 。
emitRate : real |
该属性定义了以每秒粒子数为单位的恒定发射率。例如,如果 emitRate 为 120 且系统以每秒 60 帧的速度运行,则每帧都会发射 2 个新粒子。
默认值为0
。
enabled : bool |
如果启用设置为false
,该发射器将不会发射任何粒子。通常这个值用于有条件地打开或关闭发射器。如果您想继续发射爆裂粒子,请将emitRate 保持为 0,而不要将其切换为false
。
默认值为true
。
lifeSpan : int |
lifeSpanVariation : int |
该属性以毫秒为单位定义单个粒子的寿命变化。
例如,发射的粒子将在 3 至 4 秒之间存在:
ParticleEmitter3D { ... lifeSpan: 3500 lifeSpanVariation: 500 }
默认值为0
。
另请参阅 lifeSpan 。
particle : Particle3D |
该属性定义了该发射器发射的逻辑粒子。发射器必须定义一个粒子,否则不会发射任何粒子。粒子可以是SpriteParticle3D 或ModelParticle3D 。
particleEndScale : real |
此属性定义粒子lifeSpan 末端粒子的比例乘数。若要改变粒子末端的大小,请使用particleEndScaleVariation 。当该值为负数时,末端尺度与particleScale 相同,因此在粒子运行过程中尺度不会发生变化lifeSpan 。
默认值为-1.0
。
另请参阅 particleScale 和particleScaleVariation 。
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 : vector3d |
该属性定义了粒子的旋转速度变化。旋转速度变化以欧拉角为单位定义为每秒度数。
例如,向任意方向发射随机旋转的粒子,其旋转速度在每秒 -100 至 100 度之间:
ParticleEmitter3D { ... particleRotationVariation: Qt.vector3d(180, 180, 180) particleRotationVelocityVariation: Qt.vector3d(100, 100, 100) }
另请参阅 particleRotationVelocity 。
particleScale : real |
该属性定义了粒子开始时的比例乘数。若要改变粒子大小,请使用particleScaleVariation 。
默认值为1.0
。
particleScaleVariation : real |
该属性定义了粒子的尺度变化。例如,以 0.5 - 1.5 的比例发射粒子:
ParticleEmitter3D { ... particleScale: 1.0 particleScaleVariation: 0.5 }
默认值为0.0
。
shape : ParticleAbstractShape3D |
该属性定义发射区域的可选形状。它可以是ParticleShape3D 或ParticleModelShape3D 。形状会根据发射器节点属性进行缩放、定位和旋转。当形状fill 属性设置为 false 时,发射只从形状的表面进行。
如果未定义形状,则从发射器节点的中心点发射。
system : ParticleSystem3D |
该属性定义了发射器的ParticleSystem3D 。如果系统是发射器的直接父节点,则无需定义此属性。
velocity : Direction3D |
该属性可用于设置发射粒子的起始速度。如果未设置速度,粒子开始时将保持不动,速度来自affectors (如果使用的话)。
方法文档
本方法在接下来的duration 毫秒内从该发射器发射count 量的粒子。粒子的发射方式与发射器在position 时的发射方式相同,但所有其他属性不变。
© 2025 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.