ParticleProcessMaterial
Holds a particle configuration for GPUParticles2D or GPUParticles3D nodes.
Holds a particle configuration for GpuParticles2D or GpuParticles3D nodes.
ParticleProcessMaterial defines particle properties and behavior. It is used in the process_material of the GpuParticles2D and GpuParticles3D nodes. Some of this material's properties are applied to each particle when emitted, while others can have a CurveTexture or a GradientTexture1D applied to vary numerical or color values over the lifetime of the particle.
Declarations checked against C# SDK 1.0.0. Expand a name to see declarations and documentation.
Constructors1
ParticleProcessMaterialConstructor
public ParticleProcessMaterial();Properties125
AlphaCurveProperty
public Texture2D AlphaCurve { get; set; }The alpha value of each particle's color will be multiplied by this CurveTexture over its lifetime.
Note: ParticleProcessMaterial.AlphaCurve multiplies the particle mesh's vertex colors. To have a visible effect on a BaseMaterial3D, BaseMaterial3D.VertexColorUseAsAlbedo must be true. For a ShaderMaterial, ALPHA *= COLOR.a; must be inserted in the shader's fragment() function. Otherwise, ParticleProcessMaterial.AlphaCurve will have no visible effect.
AngleProperty
public Vector2 Angle { get; set; }AngleCurveProperty
public Texture2D AngleCurve { get; set; }Each particle's rotation will be animated along this CurveTexture.
AngleMaxProperty
public float AngleMax { get; set; }Maximum initial rotation applied to each particle, in degrees.
Only applied when ParticleProcessMaterial.ParticleFlagDisableZ or ParticleProcessMaterial.ParticleFlagRotateY are true or the BaseMaterial3D being used to draw the particle is using BaseMaterial3D.BillboardModeEnum.Particles.
AngleMinProperty
public float AngleMin { get; set; }Minimum equivalent of ParticleProcessMaterial.AngleMax.
AngularVelocityProperty
public Vector2 AngularVelocity { get; set; }AngularVelocityCurveProperty
public Texture2D AngularVelocityCurve { get; set; }Each particle's angular velocity (rotation speed) will vary along this CurveTexture over its lifetime.
AngularVelocityMaxProperty
public float AngularVelocityMax { get; set; }Maximum initial angular velocity (rotation speed) applied to each particle in degrees per second.
Only applied when ParticleProcessMaterial.ParticleFlagDisableZ or ParticleProcessMaterial.ParticleFlagRotateY are true or the BaseMaterial3D being used to draw the particle is using BaseMaterial3D.BillboardModeEnum.Particles.
AngularVelocityMinProperty
public float AngularVelocityMin { get; set; }Minimum equivalent of ParticleProcessMaterial.AngularVelocityMax.
AnimOffsetProperty
public Vector2 AnimOffset { get; set; }AnimOffsetCurveProperty
public Texture2D AnimOffsetCurve { get; set; }Each particle's animation offset will vary along this CurveTexture.
AnimOffsetMaxProperty
public float AnimOffsetMax { get; set; }Maximum animation offset that corresponds to frame index in the texture. 0 is the first frame, 1 is the last one. See CanvasItemMaterial.ParticlesAnimation.
AnimOffsetMinProperty
public float AnimOffsetMin { get; set; }Minimum equivalent of ParticleProcessMaterial.AnimOffsetMax.
AnimSpeedProperty
public Vector2 AnimSpeed { get; set; }AnimSpeedCurveProperty
public Texture2D AnimSpeedCurve { get; set; }Each particle's animation speed will vary along this CurveTexture.
AnimSpeedMaxProperty
public float AnimSpeedMax { get; set; }Maximum particle animation speed. Animation speed of 1 means that the particles will make full 0 to 1 offset cycle during lifetime, 2 means 2 cycles etc.
With animation speed greater than 1, remember to enable CanvasItemMaterial.ParticlesAnimLoop property if you want the animation to repeat.
AnimSpeedMinProperty
public float AnimSpeedMin { get; set; }Minimum equivalent of ParticleProcessMaterial.AnimSpeedMax.
AttractorInteractionEnabledProperty
public bool AttractorInteractionEnabled { get; set; }Allows the material to use GPU-attractor forces. The flag alone is insufficient: an attractor in the same World3D, its region and matching render masks are required. Does not automatically connect Area3D gravity.
CollisionBounceProperty
public float CollisionBounce { get; set; }Bounce coefficient for Rigid response. Does not create a gameplay RigidBody for every particle or guarantee physically calibrated behavior.
CollisionFrictionProperty
public float CollisionFriction { get; set; }Friction coefficient for Rigid response, separate from general motion damping. Not automatically a gameplay physics-body friction material.
CollisionModeProperty
public ParticleProcessMaterial.CollisionModeEnum CollisionMode { get; set; }Response to GPU-particle colliders: Disabled for none, Rigid for material response, HideOnContact to remove visible particles on contact. Ordinary StaticBody is not connected automatically; a particle collider and matching render masks are required.
CollisionUseScaleProperty
public bool CollisionUseScale { get; set; }Allows particle scale to participate in collision-size calculation. Does not change collider geometry or update VisibilityAabb automatically.
ColorProperty
public Color Color { get; set; }Base simulation color, multiplying other color sources including point colors and ramps. Does not replace the surface material. A standard surface needs VertexColorUseAsAlbedo, usually with white albedo, to use particle color.
ColorInitialRampProperty
public Texture2D ColorInitialRamp { get; set; }Gradient texture for randomized initial color selection in the standard material path. Modulates base Color; differs from ColorRamp sampled over lifetime. The surface material must use vertex color to show the result.
ColorRampProperty
public Texture2D ColorRamp { get; set; }Color gradient texture over normalized lifetime. Multiplies the base color and other sources. Alpha requires appropriate surface transparency; a simulation ramp alone does not enable alpha blending.
DampingProperty
public Vector2 Damping { get; set; }DampingCurveProperty
public Texture2D DampingCurve { get; set; }Damping will vary along this CurveTexture.
DampingMaxProperty
public float DampingMax { get; set; }The maximum rate at which particles lose velocity. For example value of 100 means that the particle will go from 100 velocity to 0 in 1 second.
DampingMinProperty
public float DampingMin { get; set; }Minimum equivalent of ParticleProcessMaterial.DampingMax.
DirectionProperty
public Vector3 Direction { get; set; }Initial emission direction; supply a nonzero vector. Spread sets angular variation, InitialVelocityMin/Max the initial-speed range. Not the continuous Gravity force.
DirectionalVelocityProperty
public Vector2 DirectionalVelocity { get; set; }DirectionalVelocityCurveProperty
public Texture2D DirectionalVelocityCurve { get; set; }A curve that specifies the velocity along each of the axes of the particle system along its lifetime.
Note: Animated velocities will not be affected by damping, use ParticleProcessMaterial.VelocityLimitCurve instead.
DirectionalVelocityMaxProperty
public float DirectionalVelocityMax { get; set; }Maximum directional velocity value, which is multiplied by ParticleProcessMaterial.DirectionalVelocityCurve.
Note: Animated velocities will not be affected by damping, use ParticleProcessMaterial.VelocityLimitCurve instead.
DirectionalVelocityMinProperty
public float DirectionalVelocityMin { get; set; }Minimum directional velocity value, which is multiplied by ParticleProcessMaterial.DirectionalVelocityCurve.
Note: Animated velocities will not be affected by damping, use ParticleProcessMaterial.VelocityLimitCurve instead.
EmissionBoxExtentsProperty
public Vector3 EmissionBoxExtents { get; set; }The box's extents if ParticleProcessMaterial.EmissionShape is set to ParticleProcessMaterial.EmissionShapeEnum.Box.
Note: ParticleProcessMaterial.EmissionBoxExtents starts from the center point and applies the X, Y, and Z values in both directions. The size is twice the area of the extents.
EmissionColorTextureProperty
public Texture2D EmissionColorTexture { get; set; }Optional valid-point colors using the same layout as EmissionPointTexture. Multiply Color and other color sources rather than replacing them. The mesh material must use particle vertex color to display them.
EmissionCurveProperty
public Texture2D EmissionCurve { get; set; }Each particle's color will be multiplied by this CurveTexture over its lifetime.
Note: ParticleProcessMaterial.EmissionCurve multiplies the particle mesh's vertex colors. To have a visible effect on a BaseMaterial3D, BaseMaterial3D.VertexColorUseAsAlbedo must be true. For a ShaderMaterial, ALBEDO *= COLOR.rgb; must be inserted in the shader's fragment() function. Otherwise, ParticleProcessMaterial.EmissionCurve will have no visible effect.
EmissionNormalTextureProperty
public Texture2D EmissionNormalTexture { get; set; }Matching XYZ normals for DirectedPoints. Use the point texture layout and nonzero, normally unit directions. These are direct signed vectors, not an encoded surface normal map. Orients a frame; the example follows the normal using Direction +Z.
EmissionPointCountProperty
public int EmissionPointCount { get; set; }Number of valid point-texture samples for Points/DirectedPoints. Use a positive value within actual data, excluding padding. Not the emitter Amount; increasing it does not generate new points.
EmissionPointTextureProperty
public Texture2D EmissionPointTexture { get; set; }XYZ birth positions per texel for Points/DirectedPoints in emitter-local coordinates. Float data preserves negative values; do not apply color sRGB conversion or lossy processing. Points are read row-major; EmissionPointCount specifies valid entries.
EmissionRingAxisProperty
public Vector3 EmissionRingAxis { get; set; }The axis of the ring when using the emitter ParticleProcessMaterial.EmissionShapeEnum.Ring.
EmissionRingConeAngleProperty
public float EmissionRingConeAngle { get; set; }The angle of the cone when using the emitter ParticleProcessMaterial.EmissionShapeEnum.Ring. The default angle of 90 degrees results in a ring, while an angle of 0 degrees results in a cone. Intermediate values will result in a ring where one end is larger than the other.
Note: Depending on ParticleProcessMaterial.EmissionRingHeight, the angle may be clamped if the ring's end is reached to form a perfect cone.
EmissionRingHeightProperty
public float EmissionRingHeight { get; set; }The height of the ring when using the emitter ParticleProcessMaterial.EmissionShapeEnum.Ring.
EmissionRingInnerRadiusProperty
public float EmissionRingInnerRadius { get; set; }The inner radius of the ring when using the emitter ParticleProcessMaterial.EmissionShapeEnum.Ring.
EmissionRingRadiusProperty
public float EmissionRingRadius { get; set; }The radius of the ring when using the emitter ParticleProcessMaterial.EmissionShapeEnum.Ring.
EmissionShapeProperty
public ParticleProcessMaterial.EmissionShapeEnum EmissionShape { get; set; }Initial-position distribution. Points selects a position from data; DirectedPoints also orients a local frame from a normal. Not the draw mesh or a collider. Texture sampling requires valid data and a positive EmissionPointCount.
EmissionShapeOffsetProperty
public Vector3 EmissionShapeOffset { get; set; }Local birth-position offset after EmissionShapeScale: position times scale plus offset. Does not move the emitter Entity or command relocation of every live particle.
EmissionShapeScaleProperty
public Vector3 EmissionShapeScale { get; set; }Component-wise scale of local birth positions before EmissionShapeOffset. Changes layout, not drawn particle size or VisibilityAabb automatically. Use Scale parameters for geometry size.
EmissionSphereRadiusProperty
public float EmissionSphereRadius { get; set; }The sphere's radius if ParticleProcessMaterial.EmissionShape is set to ParticleProcessMaterial.EmissionShapeEnum.Sphere.
FlatnessProperty
public float Flatness { get; set; }Amount of ParticleProcessMaterial.Spread along the Y axis.
GravityProperty
public Vector3 Gravity { get; set; }Constant acceleration in simulation coordinates. The shown 2D effect uses Vector3(0,90,0), with positive Y pointing down. This is acceleration, not initial velocity; simulation already accounts for elapsed time. A new resource starts with the 3D-oriented value (0,-9.8,0), so configure 2D gravity explicitly.
HueVariationProperty
public Vector2 HueVariation { get; set; }HueVariationCurveProperty
public Texture2D HueVariationCurve { get; set; }Each particle's hue will vary along this CurveTexture.
HueVariationMaxProperty
public float HueVariationMax { get; set; }Maximum initial hue variation applied to each particle. It will shift the particle color's hue.
HueVariationMinProperty
public float HueVariationMin { get; set; }Minimum equivalent of ParticleProcessMaterial.HueVariationMax.
InheritVelocityRatioProperty
public double InheritVelocityRatio { get; set; }Percentage of the velocity of the respective GpuParticles2D or GpuParticles3D inherited by each particle when spawning.
InitialVelocityProperty
public Vector2 InitialVelocity { get; set; }InitialVelocityMaxProperty
public float InitialVelocityMax { get; set; }Upper initial linear-speed bound. Coordinate with InitialVelocityMin; subsequent motion also depends on forces and other simulation settings.
InitialVelocityMinProperty
public float InitialVelocityMin { get; set; }Lower initial linear-speed bound. Coordinate with InitialVelocityMax. Equal values fix the initial magnitude, while direction can still have Spread.
LifetimeRandomnessProperty
public double LifetimeRandomness { get; set; }Particle lifetime randomness ratio. The equation for the lifetime of a particle is lifetime * (1.0 - randf() * lifetime_randomness). For example, a ParticleProcessMaterial.LifetimeRandomness of 0.4 scales the lifetime between 0.6 to 1.0 of its original value.
LinearAccelProperty
public Vector2 LinearAccel { get; set; }LinearAccelCurveProperty
public Texture2D LinearAccelCurve { get; set; }Each particle's linear acceleration will vary along this CurveTexture.
LinearAccelMaxProperty
public float LinearAccelMax { get; set; }Maximum linear acceleration applied to each particle in the direction of motion.
LinearAccelMinProperty
public float LinearAccelMin { get; set; }Minimum equivalent of ParticleProcessMaterial.LinearAccelMax.
OrbitVelocityProperty
public Vector2 OrbitVelocity { get; set; }OrbitVelocityCurveProperty
public Texture2D OrbitVelocityCurve { get; set; }Each particle's orbital velocity will vary along this CurveTexture.
Note: For 3D orbital velocity, use a CurveXyzTexture.
Note: Animated velocities will not be affected by damping, use ParticleProcessMaterial.VelocityLimitCurve instead.
OrbitVelocityMaxProperty
public float OrbitVelocityMax { get; set; }Maximum orbital velocity applied to each particle. Makes the particles circle around origin. Specified in number of full rotations around origin per second.
Note: Animated velocities will not be affected by damping, use ParticleProcessMaterial.VelocityLimitCurve instead.
OrbitVelocityMinProperty
public float OrbitVelocityMin { get; set; }Minimum equivalent of ParticleProcessMaterial.OrbitVelocityMax.
Note: Animated velocities will not be affected by damping, use ParticleProcessMaterial.VelocityLimitCurve instead.
ParticleFlagAlignYProperty
public bool ParticleFlagAlignY { get; set; }Align Y axis of particle with the direction of its velocity.
ParticleFlagDampingAsFrictionProperty
public bool ParticleFlagDampingAsFriction { get; set; }Changes the behavior of the damping properties from a linear deceleration to a deceleration based on speed percentage.
ParticleFlagDisableZProperty
public bool ParticleFlagDisableZ { get; set; }Constrains particle motion to the XY plane for a 2D effect. The example enables it explicitly before assignment. Editing this flag on a shared resource affects every system using that resource, not just one entity.
ParticleFlagInheritEmitterScaleProperty
public bool ParticleFlagInheritEmitterScale { get; set; }If true, particles will inherit the scale of the emitter.
Note: This has no effect when GpuParticles3D.LocalCoords is true, since particles in local space are already affected by the emitter's scale.
ParticleFlagPreserveColorProperty
public bool ParticleFlagPreserveColor { get; set; }If true, preserves the color given by manual emission. To use when using GpuParticles3D.EmitParticle or when working with subemitters.
ParticleFlagRotateYProperty
public bool ParticleFlagRotateY { get; set; }If true, particles rotate around Y axis by ParticleProcessMaterial.AngleMin.
RadialAccelProperty
public Vector2 RadialAccel { get; set; }RadialAccelCurveProperty
public Texture2D RadialAccelCurve { get; set; }Each particle's radial acceleration will vary along this CurveTexture.
RadialAccelMaxProperty
public float RadialAccelMax { get; set; }Maximum radial acceleration applied to each particle. Makes particle accelerate away from the origin or towards it if negative.
RadialAccelMinProperty
public float RadialAccelMin { get; set; }Minimum equivalent of ParticleProcessMaterial.RadialAccelMax.
RadialVelocityProperty
public Vector2 RadialVelocity { get; set; }RadialVelocityCurveProperty
public Texture2D RadialVelocityCurve { get; set; }A CurveTexture that defines the velocity over the particle's lifetime away (or toward) the ParticleProcessMaterial.VelocityPivot.
Note: Animated velocities will not be affected by damping, use ParticleProcessMaterial.VelocityLimitCurve instead.
RadialVelocityMaxProperty
public float RadialVelocityMax { get; set; }Maximum radial velocity applied to each particle. Makes particles move away from the ParticleProcessMaterial.VelocityPivot, or toward it if negative.
Note: Animated velocities will not be affected by damping, use ParticleProcessMaterial.VelocityLimitCurve instead.
RadialVelocityMinProperty
public float RadialVelocityMin { get; set; }Minimum radial velocity applied to each particle. Makes particles move away from the ParticleProcessMaterial.VelocityPivot, or toward it if negative.
Note: Animated velocities will not be affected by damping, use ParticleProcessMaterial.VelocityLimitCurve instead.
Rotation3DMaxProperty
public Vector3 Rotation3DMax { get; set; }The maximum 3D orientation, in degrees. Works only in 3D and if ParticleProcessMaterial.UseRotation3D is enabled.
Rotation3DMinProperty
public Vector3 Rotation3DMin { get; set; }The minimum 3D orientation, in degrees. Works only in 3D and if ParticleProcessMaterial.UseRotation3D is enabled.
RotationVelocity3DCurveProperty
public Texture2D RotationVelocity3DCurve { get; set; }Rotation velocity curve over lifetime, per-axis. Enable ParticleProcessMaterial.UseRotationVelocity3D to use this.
RotationVelocity3DMaxProperty
public Vector3 RotationVelocity3DMax { get; set; }Maximum 3D rotation velocity on the particle's local axis. Enable ParticleProcessMaterial.UseRotationVelocity3D to use this.
RotationVelocity3DMinProperty
public Vector3 RotationVelocity3DMin { get; set; }Minimum 3D rotation velocity on the particle's local axis. Enable ParticleProcessMaterial.UseRotationVelocity3D to use this.
ScaleProperty
public Vector2 Scale { get; set; }Base particle scale range as a Vector2 minimum/maximum pair. Does not change the birth-position distribution controlled by EmissionShapeScale. Final size also depends on ScaleCurve and the drawing path.
Scale3DMaxProperty
public Vector3 Scale3DMax { get; set; }The maximum value of the random scale vector for each particle.
Works only if ParticleProcessMaterial.UseScale3D is enabled.
Scale3DMinProperty
public Vector3 Scale3DMin { get; set; }The minimum value of the random scale vector for each particle.
Works only if ParticleProcessMaterial.UseScale3D is enabled.
ScaleCurveProperty
public Texture2D ScaleCurve { get; set; }Curve texture multiplying base scale over normalized lifetime. An ordinary CurveTexture at constant 0.5 in the example reduces base scale 2 to 1. Do not infer that all other properties apply curves multiplicatively.
ScaleMaxProperty
public float ScaleMax { get; set; }Upper base particle-geometry scale bound. Coordinate with ScaleMin; the result depends on ScaleCurve, transforms and surface billboard mode. Keep Size is not a universal prerequisite for scaling.
ScaleMinProperty
public float ScaleMin { get; set; }Lower base particle-geometry scale bound. Matching ScaleMax removes this random range, not other variation sources. ScaleCurve multiplies the resulting scale; EmissionShapeScale instead changes birth positions.
ScaleOverVelocityProperty
public Vector2 ScaleOverVelocity { get; set; }ScaleOverVelocityCurveProperty
public Texture2D ScaleOverVelocityCurve { get; set; }Either a CurveTexture or a CurveXyzTexture that scales each particle based on its velocity.
ScaleOverVelocityMaxProperty
public float ScaleOverVelocityMax { get; set; }Maximum velocity value reference for ParticleProcessMaterial.ScaleOverVelocityCurve.
ParticleProcessMaterial.ScaleOverVelocityCurve will be interpolated between ParticleProcessMaterial.ScaleOverVelocityMin and ParticleProcessMaterial.ScaleOverVelocityMax.
ScaleOverVelocityMinProperty
public float ScaleOverVelocityMin { get; set; }Minimum velocity value reference for ParticleProcessMaterial.ScaleOverVelocityCurve.
ParticleProcessMaterial.ScaleOverVelocityCurve will be interpolated between ParticleProcessMaterial.ScaleOverVelocityMin and ParticleProcessMaterial.ScaleOverVelocityMax.
SpreadProperty
public float Spread { get; set; }Initial-direction spread in degrees. Not emitter Randomness, which changes birth timing, or the initial-speed range.
SubEmitterAmountAtCollisionProperty
public int SubEmitterAmountAtCollision { get; set; }Requested target births for a qualifying primary-particle contact in AtCollision. Without working CollisionMode/GPU collider setup the trigger is not established. Not gameplay physics signals.
SubEmitterAmountAtEndProperty
public int SubEmitterAmountAtEnd { get; set; }Requested target births at each primary particle end-of-life event in AtEnd. A visible second stage does not imply a new Entity; target capacity remains separate.
SubEmitterAmountAtStartProperty
public int SubEmitterAmountAtStart { get; set; }Requested target births per primary-particle birth event in AtStart. Not a global count for the whole system; target Amount and other limits still apply.
SubEmitterFrequencyProperty
public double SubEmitterFrequency { get; set; }Constant frequency in Hz for an active primary particle. Supply a finite positive number: the setter passes its reciprocal interval to the shader. Simulation steps constrain execution; not an exact arbitrary-frequency guarantee independent of FPS.
SubEmitterKeepVelocityProperty
public bool SubEmitterKeepVelocity { get; set; }Forwards primary velocity in the target birth request. In the current shader path, forwarded velocity can replace target initial-velocity initialization; do not assume simple addition of all target settings.
SubEmitterModeProperty
public ParticleProcessMaterial.SubEmitterModeEnum SubEmitterMode { get; set; }Birth trigger for the assigned GpuParticles3D.SubEmitter: Disabled, Constant, AtStart, AtEnd or AtCollision. A mode without a valid link is insufficient. AtCollision requires GPU collision; Compatibility does not support active modes in current code.
TangentialAccelProperty
public Vector2 TangentialAccel { get; set; }TangentialAccelCurveProperty
public Texture2D TangentialAccelCurve { get; set; }Each particle's tangential acceleration will vary along this CurveTexture.
TangentialAccelMaxProperty
public float TangentialAccelMax { get; set; }Maximum tangential acceleration applied to each particle. Tangential acceleration is perpendicular to the particle's velocity giving the particles a swirling motion.
TangentialAccelMinProperty
public float TangentialAccelMin { get; set; }Minimum equivalent of ParticleProcessMaterial.TangentialAccelMax.
TurbulenceEnabledProperty
public bool TurbulenceEnabled { get; set; }Enables the procedural turbulence field that redirects GPU particle motion. It does not itself supply initial speed; birth displacement is configured separately.
TurbulenceInfluenceProperty
public Vector2 TurbulenceInfluence { get; set; }Range of steering influence: X is the minimum and Y the maximum. The per-particle value is multiplied by TurbulenceInfluenceOverLife and clamped to 0–1 for steering; this range does not disable birth displacement.
TurbulenceInfluenceMaxProperty
public float TurbulenceInfluenceMax { get; set; }Upper bound of the per-particle steering influence. Equal Min and Max remove variation from this setting; greater influence does not guarantee greater speed.
TurbulenceInfluenceMinProperty
public float TurbulenceInfluenceMin { get; set; }Lower bound of the per-particle steering influence. Zero Min and Max suppress steering, but do not suppress TurbulenceInitialDisplacement.
TurbulenceInfluenceOverLifeProperty
public Texture2D TurbulenceInfluenceOverLife { get; set; }Texture multiplier for steering influence over normalized particle age: X=0 at birth, X=1 at death; the red channel is sampled. With no texture the multiplier is 1. A zero curve suppresses steering, but not birth displacement.
TurbulenceInitialDisplacementProperty
public Vector2 TurbulenceInitialDisplacement { get; set; }Range of one-time birth displacement: X is the minimum and Y the maximum. The offset follows the noise-derived direction, is not a velocity, and can apply with zero ongoing steering influence.
TurbulenceInitialDisplacementMaxProperty
public float TurbulenceInitialDisplacementMax { get; set; }Upper bound of the one-time birth displacement along the noise-derived direction. Zero Min and Max disable this offset without disabling steering.
TurbulenceInitialDisplacementMinProperty
public float TurbulenceInitialDisplacementMin { get; set; }Lower bound of the one-time birth displacement along the noise-derived direction. Used with turbulence enabled; it does not supply ongoing motion.
TurbulenceNoiseScaleProperty
public float TurbulenceNoiseScale { get; set; }Nonlinear control of spatial noise detail. It is neither a distance in meters nor a direct spatial frequency; tune it against the trajectory while keeping other settings fixed.
TurbulenceNoiseSpeedProperty
public Vector3 TurbulenceNoiseSpeed { get; set; }Motion of the noise field over time, not particle velocity. For a static field, use Vector3.Zero and also set TurbulenceNoiseSpeedRandom to zero.
TurbulenceNoiseSpeedRandomProperty
public float TurbulenceNoiseSpeedRandom { get; set; }Time variation in the procedural noise additional coordinate. A nonzero value can animate the field even when TurbulenceNoiseSpeed is Vector3.Zero.
TurbulenceNoiseStrengthProperty
public float TurbulenceNoiseStrength { get; set; }Contrast and directional detail of the procedural noise. This is not a direct particle force or speed; increasing it does not guarantee acceleration.
UseRotation3DProperty
public bool UseRotation3D { get; set; }Enable the usage of ParticleProcessMaterial.Rotation3DMin and ParticleProcessMaterial.Rotation3DMax.
UseRotationVelocity3DProperty
public bool UseRotationVelocity3D { get; set; }Enable 3D rotation velocity.
UseScale3DProperty
public bool UseScale3D { get; set; }Enable the usage of ParticleProcessMaterial.Scale3DMin and ParticleProcessMaterial.Scale3DMax.
VelocityLimitCurveProperty
public Texture2D VelocityLimitCurve { get; set; }A CurveTexture that defines the maximum velocity of a particle during its lifetime.
VelocityPivotProperty
public Vector3 VelocityPivot { get; set; }A pivot point used to calculate radial and orbital velocity of particles.
Methods116
GetAlphaCurveTexture2D
public Texture2D GetAlphaCurve();Texture2DGetCollisionBouncefloat
public float GetCollisionBounce();floatGetCollisionFrictionfloat
public float GetCollisionFriction();floatGetCollisionModeParticleProcessMaterial.CollisionModeEnum
public ParticleProcessMaterial.CollisionModeEnum GetCollisionMode();Returns CollisionMode. Response to GPU-particle colliders: Disabled for none, Rigid for material response, HideOnContact to remove visible particles on contact. Ordinary StaticBody is not connected automatically; a particle collider and matching render masks are required.
ParticleProcessMaterial.CollisionModeEnumCurrent CollisionMode value; account for the described units and scope.
GetColorColor
public Color GetColor();Returns Color. Base simulation color, multiplying other color sources including point colors and ramps. Does not replace the surface material. A standard surface needs VertexColorUseAsAlbedo, usually with white albedo, to use particle color.
ColorCurrent Color value; account for the property data format and constraints.
GetColorInitialRampTexture2D
public Texture2D GetColorInitialRamp();Texture2DGetColorRampTexture2D
public Texture2D GetColorRamp();Texture2DGetDirectionVector3
public Vector3 GetDirection();Vector3GetEmissionBoxExtentsVector3
public Vector3 GetEmissionBoxExtents();Vector3GetEmissionColorTextureTexture2D
public Texture2D GetEmissionColorTexture();Returns EmissionColorTexture. Optional valid-point colors using the same layout as EmissionPointTexture. Multiply Color and other color sources rather than replacing them. The mesh material must use particle vertex color to display them.
Texture2DCurrent EmissionColorTexture value; account for the property data format and constraints.
GetEmissionCurveTexture2D
public Texture2D GetEmissionCurve();Texture2DGetEmissionNormalTextureTexture2D
public Texture2D GetEmissionNormalTexture();Returns EmissionNormalTexture. Matching XYZ normals for DirectedPoints. Use the point texture layout and nonzero, normally unit directions. These are direct signed vectors, not an encoded surface normal map. Orients a frame; the example follows the normal using Direction +Z.
Texture2DCurrent EmissionNormalTexture value; account for the property data format and constraints.
GetEmissionPointCountint
public int GetEmissionPointCount();Returns EmissionPointCount. Number of valid point-texture samples for Points/DirectedPoints. Use a positive value within actual data, excluding padding. Not the emitter Amount; increasing it does not generate new points.
intCurrent EmissionPointCount value; account for the property data format and constraints.
GetEmissionPointTextureTexture2D
public Texture2D GetEmissionPointTexture();Returns EmissionPointTexture. XYZ birth positions per texel for Points/DirectedPoints in emitter-local coordinates. Float data preserves negative values; do not apply color sRGB conversion or lossy processing. Points are read row-major; EmissionPointCount specifies valid entries.
Texture2DCurrent EmissionPointTexture value; account for the property data format and constraints.
GetEmissionRingAxisVector3
public Vector3 GetEmissionRingAxis();Vector3GetEmissionRingConeAnglefloat
public float GetEmissionRingConeAngle();floatGetEmissionRingHeightfloat
public float GetEmissionRingHeight();floatGetEmissionRingInnerRadiusfloat
public float GetEmissionRingInnerRadius();floatGetEmissionRingRadiusfloat
public float GetEmissionRingRadius();floatGetEmissionShapeParticleProcessMaterial.EmissionShapeEnum
public ParticleProcessMaterial.EmissionShapeEnum GetEmissionShape();Returns EmissionShape. Initial-position distribution. Points selects a position from data; DirectedPoints also orients a local frame from a normal. Not the draw mesh or a collider. Texture sampling requires valid data and a positive EmissionPointCount.
ParticleProcessMaterial.EmissionShapeEnumCurrent EmissionShape value; account for the property data format and constraints.
GetEmissionShapeOffsetVector3
public Vector3 GetEmissionShapeOffset();Returns EmissionShapeOffset. Local birth-position offset after EmissionShapeScale: position times scale plus offset. Does not move the emitter Entity or command relocation of every live particle.
Vector3Current EmissionShapeOffset value; account for the property data format and constraints.
GetEmissionShapeScaleVector3
public Vector3 GetEmissionShapeScale();Returns EmissionShapeScale. Component-wise scale of local birth positions before EmissionShapeOffset. Changes layout, not drawn particle size or VisibilityAabb automatically. Use Scale parameters for geometry size.
Vector3Current EmissionShapeScale value; account for the property data format and constraints.
GetEmissionSphereRadiusfloat
public float GetEmissionSphereRadius();floatGetFlatnessfloat
public float GetFlatness();floatGetGravityVector3
public Vector3 GetGravity();Vector3GetInheritVelocityRatiodouble
public double GetInheritVelocityRatio();doubleGetLifetimeRandomnessdouble
public double GetLifetimeRandomness();doubleGetParamVector2
public Vector2 GetParam(ParticleProcessMaterial.Parameter param);Returns the minimum and maximum values of the given param as a vector.
The x component of the returned vector corresponds to minimum and the y component corresponds to maximum.
| Name | Type | Default |
|---|---|---|
param | ParticleProcessMaterial.Parameter | — |
Vector2GetParamMaxfloat
public float GetParamMax(ParticleProcessMaterial.Parameter param);Returns the maximum value range for the given parameter.
| Name | Type | Default |
|---|---|---|
param | ParticleProcessMaterial.Parameter | — |
floatGetParamMinfloat
public float GetParamMin(ParticleProcessMaterial.Parameter param);Returns the minimum value range for the given parameter.
| Name | Type | Default |
|---|---|---|
param | ParticleProcessMaterial.Parameter | — |
floatGetParamTextureTexture2D
public Texture2D GetParamTexture(ParticleProcessMaterial.Parameter param);Returns the Texture2D used by the specified parameter.
| Name | Type | Default |
|---|---|---|
param | ParticleProcessMaterial.Parameter | — |
Texture2DGetParticleFlagbool
public bool GetParticleFlag(ParticleProcessMaterial.ParticleFlags particleFlag);Returns true if the specified particle flag is enabled.
| Name | Type | Default |
|---|---|---|
particleFlag | ParticleProcessMaterial.ParticleFlags | — |
boolGetRotation3DMaxVector3
public Vector3 GetRotation3DMax();Vector3GetRotation3DMinVector3
public Vector3 GetRotation3DMin();Vector3GetRotationVelocity3DCurveTexture2D
public Texture2D GetRotationVelocity3DCurve();Texture2DGetRotationVelocity3DMaxVector3
public Vector3 GetRotationVelocity3DMax();Vector3GetRotationVelocity3DMinVector3
public Vector3 GetRotationVelocity3DMin();Vector3GetScale3DMaxVector3
public Vector3 GetScale3DMax();Vector3GetScale3DMinVector3
public Vector3 GetScale3DMin();Vector3GetSpreadfloat
public float GetSpread();floatGetSubEmitterAmountAtCollisionint
public int GetSubEmitterAmountAtCollision();Returns SubEmitterAmountAtCollision. Requested target births for a qualifying primary-particle contact in AtCollision. Without working CollisionMode/GPU collider setup the trigger is not established. Not gameplay physics signals.
intCurrent SubEmitterAmountAtCollision value; account for units and the setting/effective-result distinction.
GetSubEmitterAmountAtEndint
public int GetSubEmitterAmountAtEnd();Returns SubEmitterAmountAtEnd. Requested target births at each primary particle end-of-life event in AtEnd. A visible second stage does not imply a new Entity; target capacity remains separate.
intCurrent SubEmitterAmountAtEnd value; account for units and the setting/effective-result distinction.
GetSubEmitterAmountAtStartint
public int GetSubEmitterAmountAtStart();Returns SubEmitterAmountAtStart. Requested target births per primary-particle birth event in AtStart. Not a global count for the whole system; target Amount and other limits still apply.
intCurrent SubEmitterAmountAtStart value; account for units and the setting/effective-result distinction.
GetSubEmitterFrequencydouble
public double GetSubEmitterFrequency();Returns SubEmitterFrequency. Constant frequency in Hz for an active primary particle. Supply a finite positive number: the setter passes its reciprocal interval to the shader. Simulation steps constrain execution; not an exact arbitrary-frequency guarantee independent of FPS.
doubleCurrent SubEmitterFrequency value; account for units and the setting/effective-result distinction.
GetSubEmitterKeepVelocitybool
public bool GetSubEmitterKeepVelocity();Returns SubEmitterKeepVelocity. Forwards primary velocity in the target birth request. In the current shader path, forwarded velocity can replace target initial-velocity initialization; do not assume simple addition of all target settings.
boolCurrent SubEmitterKeepVelocity value; account for units and the setting/effective-result distinction.
GetSubEmitterModeParticleProcessMaterial.SubEmitterModeEnum
public ParticleProcessMaterial.SubEmitterModeEnum GetSubEmitterMode();Returns SubEmitterMode. Birth trigger for the assigned GpuParticles3D.SubEmitter: Disabled, Constant, AtStart, AtEnd or AtCollision. A mode without a valid link is insufficient. AtCollision requires GPU collision; Compatibility does not support active modes in current code.
ParticleProcessMaterial.SubEmitterModeEnumCurrent SubEmitterMode value; account for units and the setting/effective-result distinction.
GetTurbulenceEnabledbool
public bool GetTurbulenceEnabled();Returns the stored setting. Enables the procedural turbulence field that redirects GPU particle motion. It does not itself supply initial speed; birth displacement is configured separately.
boolGetTurbulenceNoiseScalefloat
public float GetTurbulenceNoiseScale();Returns the stored setting. Nonlinear control of spatial noise detail. It is neither a distance in meters nor a direct spatial frequency; tune it against the trajectory while keeping other settings fixed.
floatGetTurbulenceNoiseSpeedVector3
public Vector3 GetTurbulenceNoiseSpeed();Returns the stored setting. Motion of the noise field over time, not particle velocity. For a static field, use Vector3.Zero and also set TurbulenceNoiseSpeedRandom to zero.
Vector3GetTurbulenceNoiseSpeedRandomfloat
public float GetTurbulenceNoiseSpeedRandom();Returns the stored setting. Time variation in the procedural noise additional coordinate. A nonzero value can animate the field even when TurbulenceNoiseSpeed is Vector3.Zero.
floatGetTurbulenceNoiseStrengthfloat
public float GetTurbulenceNoiseStrength();Returns the stored setting. Contrast and directional detail of the procedural noise. This is not a direct particle force or speed; increasing it does not guarantee acceleration.
floatGetVelocityLimitCurveTexture2D
public Texture2D GetVelocityLimitCurve();Texture2DGetVelocityPivotVector3
public Vector3 GetVelocityPivot();Vector3IsAttractorInteractionEnabledbool
public bool IsAttractorInteractionEnabled();Returns AttractorInteractionEnabled. Allows the material to use GPU-attractor forces. The flag alone is insufficient: an attractor in the same World3D, its region and matching render masks are required. Does not automatically connect Area3D gravity.
boolCurrent AttractorInteractionEnabled value; account for the described units and scope.
IsCollisionUsingScalebool
public bool IsCollisionUsingScale();boolIsUsingRotation3Dbool
public bool IsUsingRotation3D();boolIsUsingRotationVelocity3Dbool
public bool IsUsingRotationVelocity3D();boolIsUsingScale3Dbool
public bool IsUsingScale3D();boolSetAlphaCurvevoid
public void SetAlphaCurve(Texture2D curve);| Name | Type | Default |
|---|---|---|
curve | Texture2D | — |
SetAttractorInteractionEnabledvoid
public void SetAttractorInteractionEnabled(bool enabled);Sets AttractorInteractionEnabled. Allows the material to use GPU-attractor forces. The flag alone is insufficient: an attractor in the same World3D, its region and matching render masks are required. Does not automatically connect Area3D gravity.
| Name | Type | Default |
|---|---|---|
enabled | bool | — |
enabledAllows the material to use GPU-attractor forces. The flag alone is insufficient: an attractor in the same World3D, its region and matching render masks are required. Does not automatically connect Area3D gravity.
SetCollisionBouncevoid
public void SetCollisionBounce(float bounce);| Name | Type | Default |
|---|---|---|
bounce | float | — |
SetCollisionFrictionvoid
public void SetCollisionFriction(float friction);| Name | Type | Default |
|---|---|---|
friction | float | — |
SetCollisionModevoid
public void SetCollisionMode(ParticleProcessMaterial.CollisionModeEnum mode);Sets CollisionMode. Response to GPU-particle colliders: Disabled for none, Rigid for material response, HideOnContact to remove visible particles on contact. Ordinary StaticBody is not connected automatically; a particle collider and matching render masks are required.
| Name | Type | Default |
|---|---|---|
mode | ParticleProcessMaterial.CollisionModeEnum | — |
modeResponse to GPU-particle colliders: Disabled for none, Rigid for material response, HideOnContact to remove visible particles on contact. Ordinary StaticBody is not connected automatically; a particle collider and matching render masks are required.
SetCollisionUseScalevoid
public void SetCollisionUseScale(bool radius);| Name | Type | Default |
|---|---|---|
radius | bool | — |
SetColorvoid
public void SetColor(Color color);Sets Color. Base simulation color, multiplying other color sources including point colors and ramps. Does not replace the surface material. A standard surface needs VertexColorUseAsAlbedo, usually with white albedo, to use particle color.
| Name | Type | Default |
|---|---|---|
color | Color | — |
colorBase simulation color, multiplying other color sources including point colors and ramps. Does not replace the surface material. A standard surface needs VertexColorUseAsAlbedo, usually with white albedo, to use particle color.
SetColorInitialRampvoid
public void SetColorInitialRamp(Texture2D ramp);| Name | Type | Default |
|---|---|---|
ramp | Texture2D | — |
SetColorRampvoid
public void SetColorRamp(Texture2D ramp);| Name | Type | Default |
|---|---|---|
ramp | Texture2D | — |
SetDirectionvoid
public void SetDirection(Vector3 degrees);| Name | Type | Default |
|---|---|---|
degrees | Vector3 | — |
SetEmissionBoxExtentsvoid
public void SetEmissionBoxExtents(Vector3 extents);| Name | Type | Default |
|---|---|---|
extents | Vector3 | — |
SetEmissionColorTexturevoid
public void SetEmissionColorTexture(Texture2D texture);Sets EmissionColorTexture. Optional valid-point colors using the same layout as EmissionPointTexture. Multiply Color and other color sources rather than replacing them. The mesh material must use particle vertex color to display them.
| Name | Type | Default |
|---|---|---|
texture | Texture2D | — |
textureOptional valid-point colors using the same layout as EmissionPointTexture. Multiply Color and other color sources rather than replacing them. The mesh material must use particle vertex color to display them.
SetEmissionCurvevoid
public void SetEmissionCurve(Texture2D curve);| Name | Type | Default |
|---|---|---|
curve | Texture2D | — |
SetEmissionNormalTexturevoid
public void SetEmissionNormalTexture(Texture2D texture);Sets EmissionNormalTexture. Matching XYZ normals for DirectedPoints. Use the point texture layout and nonzero, normally unit directions. These are direct signed vectors, not an encoded surface normal map. Orients a frame; the example follows the normal using Direction +Z.
| Name | Type | Default |
|---|---|---|
texture | Texture2D | — |
textureMatching XYZ normals for DirectedPoints. Use the point texture layout and nonzero, normally unit directions. These are direct signed vectors, not an encoded surface normal map. Orients a frame; the example follows the normal using Direction +Z.
SetEmissionPointCountvoid
public void SetEmissionPointCount(int pointCount);Sets EmissionPointCount. Number of valid point-texture samples for Points/DirectedPoints. Use a positive value within actual data, excluding padding. Not the emitter Amount; increasing it does not generate new points.
| Name | Type | Default |
|---|---|---|
pointCount | int | — |
pointCountNumber of valid point-texture samples for Points/DirectedPoints. Use a positive value within actual data, excluding padding. Not the emitter Amount; increasing it does not generate new points.
SetEmissionPointTexturevoid
public void SetEmissionPointTexture(Texture2D texture);Sets EmissionPointTexture. XYZ birth positions per texel for Points/DirectedPoints in emitter-local coordinates. Float data preserves negative values; do not apply color sRGB conversion or lossy processing. Points are read row-major; EmissionPointCount specifies valid entries.
| Name | Type | Default |
|---|---|---|
texture | Texture2D | — |
textureXYZ birth positions per texel for Points/DirectedPoints in emitter-local coordinates. Float data preserves negative values; do not apply color sRGB conversion or lossy processing. Points are read row-major; EmissionPointCount specifies valid entries.
SetEmissionRingAxisvoid
public void SetEmissionRingAxis(Vector3 axis);| Name | Type | Default |
|---|---|---|
axis | Vector3 | — |
SetEmissionRingConeAnglevoid
public void SetEmissionRingConeAngle(float coneAngle);| Name | Type | Default |
|---|---|---|
coneAngle | float | — |
SetEmissionRingHeightvoid
public void SetEmissionRingHeight(float height);| Name | Type | Default |
|---|---|---|
height | float | — |
SetEmissionRingInnerRadiusvoid
public void SetEmissionRingInnerRadius(float innerRadius);| Name | Type | Default |
|---|---|---|
innerRadius | float | — |
SetEmissionRingRadiusvoid
public void SetEmissionRingRadius(float radius);| Name | Type | Default |
|---|---|---|
radius | float | — |
SetEmissionShapevoid
public void SetEmissionShape(ParticleProcessMaterial.EmissionShapeEnum shape);Sets EmissionShape. Initial-position distribution. Points selects a position from data; DirectedPoints also orients a local frame from a normal. Not the draw mesh or a collider. Texture sampling requires valid data and a positive EmissionPointCount.
| Name | Type | Default |
|---|---|---|
shape | ParticleProcessMaterial.EmissionShapeEnum | — |
shapeInitial-position distribution. Points selects a position from data; DirectedPoints also orients a local frame from a normal. Not the draw mesh or a collider. Texture sampling requires valid data and a positive EmissionPointCount.
SetEmissionShapeOffsetvoid
public void SetEmissionShapeOffset(Vector3 emissionShapeOffset);Sets EmissionShapeOffset. Local birth-position offset after EmissionShapeScale: position times scale plus offset. Does not move the emitter Entity or command relocation of every live particle.
| Name | Type | Default |
|---|---|---|
emissionShapeOffset | Vector3 | — |
emissionShapeOffsetLocal birth-position offset after EmissionShapeScale: position times scale plus offset. Does not move the emitter Entity or command relocation of every live particle.
SetEmissionShapeScalevoid
public void SetEmissionShapeScale(Vector3 emissionShapeScale);Sets EmissionShapeScale. Component-wise scale of local birth positions before EmissionShapeOffset. Changes layout, not drawn particle size or VisibilityAabb automatically. Use Scale parameters for geometry size.
| Name | Type | Default |
|---|---|---|
emissionShapeScale | Vector3 | — |
emissionShapeScaleComponent-wise scale of local birth positions before EmissionShapeOffset. Changes layout, not drawn particle size or VisibilityAabb automatically. Use Scale parameters for geometry size.
SetEmissionSphereRadiusvoid
public void SetEmissionSphereRadius(float radius);| Name | Type | Default |
|---|---|---|
radius | float | — |
SetFlatnessvoid
public void SetFlatness(float amount);| Name | Type | Default |
|---|---|---|
amount | float | — |
SetGravityvoid
public void SetGravity(Vector3 accelVec);| Name | Type | Default |
|---|---|---|
accelVec | Vector3 | — |
SetInheritVelocityRatiovoid
public void SetInheritVelocityRatio(double ratio);| Name | Type | Default |
|---|---|---|
ratio | double | — |
SetLifetimeRandomnessvoid
public void SetLifetimeRandomness(double randomness);| Name | Type | Default |
|---|---|---|
randomness | double | — |
SetParamvoid
public void SetParam(ParticleProcessMaterial.Parameter param, Vector2 value);Sets the minimum and maximum values of the given param.
The x component of the argument vector corresponds to minimum and the y component corresponds to maximum.
| Name | Type | Default |
|---|---|---|
param | ParticleProcessMaterial.Parameter | — |
value | Vector2 | — |
SetParamMaxvoid
public void SetParamMax(ParticleProcessMaterial.Parameter param, float value);Sets the maximum value range for the given parameter.
| Name | Type | Default |
|---|---|---|
param | ParticleProcessMaterial.Parameter | — |
value | float | — |
SetParamMinvoid
public void SetParamMin(ParticleProcessMaterial.Parameter param, float value);Sets the minimum value range for the given parameter.
| Name | Type | Default |
|---|---|---|
param | ParticleProcessMaterial.Parameter | — |
value | float | — |
SetParamTexturevoid
public void SetParamTexture(ParticleProcessMaterial.Parameter param, Texture2D texture);Sets the Texture2D for the specified ParticleProcessMaterial.Parameter.
| Name | Type | Default |
|---|---|---|
param | ParticleProcessMaterial.Parameter | — |
texture | Texture2D | — |
SetParticleFlagvoid
public void SetParticleFlag(ParticleProcessMaterial.ParticleFlags particleFlag, bool enable);Sets the particle_flag to enable.
| Name | Type | Default |
|---|---|---|
particleFlag | ParticleProcessMaterial.ParticleFlags | — |
enable | bool | — |
SetRotation3DMaxvoid
public void SetRotation3DMax(Vector3 rotation3DMax);| Name | Type | Default |
|---|---|---|
rotation3DMax | Vector3 | — |
SetRotation3DMinvoid
public void SetRotation3DMin(Vector3 rotation3DMin);| Name | Type | Default |
|---|---|---|
rotation3DMin | Vector3 | — |
SetRotationVelocity3DCurvevoid
public void SetRotationVelocity3DCurve(Texture2D rotationVelocity3DCurve);| Name | Type | Default |
|---|---|---|
rotationVelocity3DCurve | Texture2D | — |
SetRotationVelocity3DMaxvoid
public void SetRotationVelocity3DMax(Vector3 rotationVelocity3DMax);| Name | Type | Default |
|---|---|---|
rotationVelocity3DMax | Vector3 | — |
SetRotationVelocity3DMinvoid
public void SetRotationVelocity3DMin(Vector3 rotationVelocity3DMin);| Name | Type | Default |
|---|---|---|
rotationVelocity3DMin | Vector3 | — |
SetScale3DMaxvoid
public void SetScale3DMax(Vector3 scale3DMax);| Name | Type | Default |
|---|---|---|
scale3DMax | Vector3 | — |
SetScale3DMinvoid
public void SetScale3DMin(Vector3 scale3DMin);| Name | Type | Default |
|---|---|---|
scale3DMin | Vector3 | — |
SetSpreadvoid
public void SetSpread(float degrees);| Name | Type | Default |
|---|---|---|
degrees | float | — |
SetSubEmitterAmountAtCollisionvoid
public void SetSubEmitterAmountAtCollision(int amount);Sets SubEmitterAmountAtCollision. Requested target births for a qualifying primary-particle contact in AtCollision. Without working CollisionMode/GPU collider setup the trigger is not established. Not gameplay physics signals.
| Name | Type | Default |
|---|---|---|
amount | int | — |
amountRequested target births for a qualifying primary-particle contact in AtCollision. Without working CollisionMode/GPU collider setup the trigger is not established. Not gameplay physics signals.
SetSubEmitterAmountAtEndvoid
public void SetSubEmitterAmountAtEnd(int amount);Sets SubEmitterAmountAtEnd. Requested target births at each primary particle end-of-life event in AtEnd. A visible second stage does not imply a new Entity; target capacity remains separate.
| Name | Type | Default |
|---|---|---|
amount | int | — |
amountRequested target births at each primary particle end-of-life event in AtEnd. A visible second stage does not imply a new Entity; target capacity remains separate.
SetSubEmitterAmountAtStartvoid
public void SetSubEmitterAmountAtStart(int amount);Sets SubEmitterAmountAtStart. Requested target births per primary-particle birth event in AtStart. Not a global count for the whole system; target Amount and other limits still apply.
| Name | Type | Default |
|---|---|---|
amount | int | — |
amountRequested target births per primary-particle birth event in AtStart. Not a global count for the whole system; target Amount and other limits still apply.
SetSubEmitterFrequencyvoid
public void SetSubEmitterFrequency(double hz);Sets SubEmitterFrequency. Constant frequency in Hz for an active primary particle. Supply a finite positive number: the setter passes its reciprocal interval to the shader. Simulation steps constrain execution; not an exact arbitrary-frequency guarantee independent of FPS.
| Name | Type | Default |
|---|---|---|
hz | double | — |
hzConstant frequency in Hz for an active primary particle. Supply a finite positive number: the setter passes its reciprocal interval to the shader. Simulation steps constrain execution; not an exact arbitrary-frequency guarantee independent of FPS.
SetSubEmitterKeepVelocityvoid
public void SetSubEmitterKeepVelocity(bool enable);Sets SubEmitterKeepVelocity. Forwards primary velocity in the target birth request. In the current shader path, forwarded velocity can replace target initial-velocity initialization; do not assume simple addition of all target settings.
| Name | Type | Default |
|---|---|---|
enable | bool | — |
enableForwards primary velocity in the target birth request. In the current shader path, forwarded velocity can replace target initial-velocity initialization; do not assume simple addition of all target settings.
SetSubEmitterModevoid
public void SetSubEmitterMode(ParticleProcessMaterial.SubEmitterModeEnum mode);Sets SubEmitterMode. Birth trigger for the assigned GpuParticles3D.SubEmitter: Disabled, Constant, AtStart, AtEnd or AtCollision. A mode without a valid link is insufficient. AtCollision requires GPU collision; Compatibility does not support active modes in current code.
| Name | Type | Default |
|---|---|---|
mode | ParticleProcessMaterial.SubEmitterModeEnum | — |
modeBirth trigger for the assigned GpuParticles3D.SubEmitter: Disabled, Constant, AtStart, AtEnd or AtCollision. A mode without a valid link is insufficient. AtCollision requires GPU collision; Compatibility does not support active modes in current code.
SetTurbulenceEnabledvoid
public void SetTurbulenceEnabled(bool turbulenceEnabled);Sets the material setting. Enables the procedural turbulence field that redirects GPU particle motion. It does not itself supply initial speed; birth displacement is configured separately.
| Name | Type | Default |
|---|---|---|
turbulenceEnabled | bool | — |
turbulenceEnabledEnables the procedural turbulence field that redirects GPU particle motion. It does not itself supply initial speed; birth displacement is configured separately.
SetTurbulenceNoiseScalevoid
public void SetTurbulenceNoiseScale(float turbulenceNoiseScale);Sets the material setting. Nonlinear control of spatial noise detail. It is neither a distance in meters nor a direct spatial frequency; tune it against the trajectory while keeping other settings fixed.
| Name | Type | Default |
|---|---|---|
turbulenceNoiseScale | float | — |
turbulenceNoiseScaleNonlinear control of spatial noise detail. It is neither a distance in meters nor a direct spatial frequency; tune it against the trajectory while keeping other settings fixed.
SetTurbulenceNoiseSpeedvoid
public void SetTurbulenceNoiseSpeed(Vector3 turbulenceNoiseSpeed);Sets the material setting. Motion of the noise field over time, not particle velocity. For a static field, use Vector3.Zero and also set TurbulenceNoiseSpeedRandom to zero.
| Name | Type | Default |
|---|---|---|
turbulenceNoiseSpeed | Vector3 | — |
turbulenceNoiseSpeedMotion of the noise field over time, not particle velocity. For a static field, use Vector3.Zero and also set TurbulenceNoiseSpeedRandom to zero.
SetTurbulenceNoiseSpeedRandomvoid
public void SetTurbulenceNoiseSpeedRandom(float turbulenceNoiseSpeedRandom);Sets the material setting. Time variation in the procedural noise additional coordinate. A nonzero value can animate the field even when TurbulenceNoiseSpeed is Vector3.Zero.
| Name | Type | Default |
|---|---|---|
turbulenceNoiseSpeedRandom | float | — |
turbulenceNoiseSpeedRandomTime variation in the procedural noise additional coordinate. A nonzero value can animate the field even when TurbulenceNoiseSpeed is Vector3.Zero.
SetTurbulenceNoiseStrengthvoid
public void SetTurbulenceNoiseStrength(float turbulenceNoiseStrength);Sets the material setting. Contrast and directional detail of the procedural noise. This is not a direct particle force or speed; increasing it does not guarantee acceleration.
| Name | Type | Default |
|---|---|---|
turbulenceNoiseStrength | float | — |
turbulenceNoiseStrengthContrast and directional detail of the procedural noise. This is not a direct particle force or speed; increasing it does not guarantee acceleration.
SetUseRotation3Dvoid
public void SetUseRotation3D(bool usingRotation3D);| Name | Type | Default |
|---|---|---|
usingRotation3D | bool | — |
SetUseScale3Dvoid
public void SetUseScale3D(bool usingScale3D);| Name | Type | Default |
|---|---|---|
usingScale3D | bool | — |
SetUsingRotationVelocity3Dvoid
public void SetUsingRotationVelocity3D(bool useRotationVelocity3D);| Name | Type | Default |
|---|---|---|
useRotationVelocity3D | bool | — |
SetVelocityLimitCurvevoid
public void SetVelocityLimitCurve(Texture2D curve);| Name | Type | Default |
|---|---|---|
curve | Texture2D | — |
SetVelocityPivotvoid
public void SetVelocityPivot(Vector3 pivot);| Name | Type | Default |
|---|---|---|
pivot | Vector3 | — |
Signals and events1
EmissionShapeChangedEvent
public event Action EmissionShapeChanged;Emitted when this material's emission shape is changed in any way. This includes changes to ParticleProcessMaterial.EmissionShape, ParticleProcessMaterial.EmissionShapeScale, or ParticleProcessMaterial.EmissionSphereRadius, and any other property that affects the emission shape's offset, size, scale, or orientation.
Note: This signal is only emitted inside the editor for performance reasons.
ParticleProcessMaterial.CollisionModeEnum
| Value | Description |
|---|---|
Disabled = 0 | No collision for particles. Particles will go through |
HideOnContact = 2 | Hide particles instantly when colliding with a |
Max = 3 | Represents the size of the |
Rigid = 1 |
|
ParticleProcessMaterial.EmissionShapeEnum
| Value | Description |
|---|---|
Box = 3 | Particles will be emitted in the volume of a box. |
DirectedPoints = 5 | Particles will be emitted at a position determined by sampling a random point on the |
Max = 7 | Represents the size of the |
Point = 0 | All particles will be emitted from a single point. |
Points = 4 | Particles will be emitted at a position determined by sampling a random point on the |
Ring = 6 | Particles will be emitted in a ring or cylinder. |
Sphere = 1 | Particles will be emitted in the volume of a sphere. |
SphereSurface = 2 | Particles will be emitted on the surface of a sphere. |
ParticleProcessMaterial.Parameter
ParticleProcessMaterial.ParticleFlags
ParticleProcessMaterial.SubEmitterModeEnum
| Value | Description |
|---|---|
AtCollision = 3 | The subemitter is emitted when the particle collides. |
AtEnd = 2 | The subemitter is emitted at the end of the particle's lifetime. |
AtStart = 4 | The subemitter is emitted when the particle spawns. |
Constant = 1 | The submitter is emitted on the constant interval defined by |
Disabled = 0 | The subemitter is disabled. |
Max = 5 | Represents the size of the |