Skip to content

Class: ParticleSystem2DComponent ​

Unity's ParticleSystem, in 2D (a 3D one will sit beside it): a Main block plus modules, each module a schema group whose header checkbox is its …Enabled flag. Values that vary are MinMaxCurves / MinMaxGradients (Particles/ParticleCurves.ts) — a plain number or colour is the constant form. Distances are pixels, angles degrees, times seconds; +y is up.

Behaviour lives in ParticleSimulation2D (one per component, _sim) and the particle systems (Systems/ParticleSystem2DSystem.ts): they step it once per rendered frame and draw it through the renderer's ParticleCapability. Child particle systems play / stop with their parent; a child whose subEmitterTrigger is set is instead a sub-emitter of its nearest particle-system ancestor — it only emits when the parent's particles are born / die / collide.

Extends ​

Constructors ​

Constructor ​

ts
new ParticleSystem2DComponent(): ParticleSystem2DComponent;

Returns ​

ParticleSystem2DComponent

Inherited from ​

Component.constructor

Properties ​

PropertyModifierTypeDefault valueInherited from
alignToDirectionpublicbooleanundefined-
angularVelocitypublicMinMaxCurveundefined-
arcModepublicParticleArcModeundefined-
arcSpeedpublicnumberundefined-
arcSpreadpublicnumberundefined-
assetIdpublicstringundefined-
autoRandomSeedpublicbooleanundefined-
blendModepublicParticleBlendModeundefined-
bouncepublicnumberundefined-
burstspublicParticleBurst[]undefined-
collisionDampenpublicnumberundefined-
collisionEnabledpublicbooleanundefined-
collisionPlanepublicEntity | nullundefined-
collisionPlane2publicEntity | nullundefined-
collisionPlane3publicEntity | nullundefined-
colorBySpeedpublicMinMaxGradientundefined-
colorBySpeedEnabledpublicbooleanundefined-
colorOverLifetimepublicMinMaxGradientundefined-
colorOverLifetimeEnabledpublicbooleanundefined-
colorSpeedRangepublic[number, number]undefined-
dampenpublicnumberundefined-
dirtypublicbooleantrueComponent.dirty
dragpublicMinMaxCurveundefined-
durationpublicnumberundefined-
emissionEnabledpublicbooleanundefined-
emitFromEdgepublicbooleanundefined-
enabledpublicbooleantrueComponent.enabled
flipRotationpublicnumberundefined-
flipXpublicnumberundefined-
flipYpublicnumberundefined-
forceEnabledpublicbooleanundefined-
forceRandomizepublicbooleanundefined-
forceSpacepublicParticleSpaceundefined-
forceXpublicMinMaxCurveundefined-
forceYpublicMinMaxCurveundefined-
frameOverTimepublicMinMaxCurveundefined-
gravityModifierpublicMinMaxCurveundefined-
inheritParticleColorpublicbooleanundefined-
inheritVelocitypublicMinMaxCurveundefined-
inheritVelocityEnabledpublicbooleanundefined-
inheritVelocityModepublic"initial" | "current"undefined-
lengthScalepublicnumberundefined-
lifetimeLosspublicnumberundefined-
limitVelocityEnabledpublicbooleanundefined-
loopingpublicbooleanundefined-
materialpublicstringundefined-
materialValuespublicRecord<string, unknown>undefined-
maxParticlespublicnumberundefined-
minKillSpeedpublicnumberundefined-
minVertexDistancepublicnumberundefined-
multiplyDragBySizepublicbooleanundefined-
multiplyDragByVelocitypublicbooleanundefined-
noiseEnabledpublicbooleanundefined-
noiseFrequencypublicnumberundefined-
noiseOctaveMultiplierpublicnumberundefined-
noiseOctavespublicnumberundefined-
noiseOctaveScalepublicnumberundefined-
noisePositionAmountpublicnumberundefined-
noiseRotationAmountpublicnumberundefined-
noiseScrollSpeedpublicnumberundefined-
noiseSizeAmountpublicnumberundefined-
noiseStrengthpublicMinMaxCurveundefined-
orbitalOffsetpublic[number, number]undefined-
orbitalVelocitypublicMinMaxCurveundefined-
playOnAwakepublicbooleanundefined-
prewarmpublicbooleanundefined-
radialVelocitypublicMinMaxCurveundefined-
radiusScalepublicnumberundefined-
radiusThicknesspublicnumberundefined-
randomizeDirectionpublicnumberundefined-
randomizePositionpublicnumberundefined-
randomSeedpublicnumberundefined-
rateOverDistancepublicMinMaxCurveundefined-
rateOverTimepublicMinMaxCurveundefined-
renderModepublic"billboard" | "stretched"undefined-
ribbonCountpublicnumberundefined-
rotationBySpeedpublicMinMaxCurveundefined-
rotationBySpeedEnabledpublicbooleanundefined-
rotationOverLifetimeEnabledpublicbooleanundefined-
rotationSpeedRangepublic[number, number]undefined-
sendCollisionEventspublicbooleanundefined-
shapepublicParticleShapeundefined-
shapeAnglepublicnumberundefined-
shapeArcpublicnumberundefined-
shapeEnabledpublicbooleanundefined-
shapeHeightpublicnumberundefined-
shapeLengthpublicnumberundefined-
shapePositionpublic[number, number]undefined-
shapeRadiuspublicnumberundefined-
shapeRotationpublicnumberundefined-
shapeScalepublic[number, number]undefined-
shapeWidthpublicnumberundefined-
sheetAnimationpublic"wholeSheet" | "singleRow"undefined-
sheetCyclespublicnumberundefined-
sheetRowpublicnumberundefined-
sheetRowModepublic"random" | "custom"undefined-
simulationSpacepublicParticleSpaceundefined-
simulationSpeedpublicnumberundefined-
sizeAffectsWidthpublicbooleanundefined-
sizeBySpeedpublicMinMaxCurveundefined-
sizeBySpeedEnabledpublicbooleanundefined-
sizeOverLifetimepublicMinMaxCurveundefined-
sizeOverLifetimeEnabledpublicbooleanundefined-
sizeOverLifetimeYpublicMinMaxCurveundefined-
sizeSeparateAxespublicbooleanundefined-
sizeSpeedRangepublic[number, number]undefined-
sortModepublic"youngestInFront" | "oldestInFront"undefined-
speedLimitpublicMinMaxCurveundefined-
speedModifierpublicMinMaxCurveundefined-
speedScalepublicnumberundefined-
sphericalizeDirectionpublicnumberundefined-
startColorpublicMinMaxGradientundefined-
startDelaypublicMinMaxCurveundefined-
startFramepublicMinMaxCurveundefined-
startLifetimepublicMinMaxCurveundefined-
startRotationpublicMinMaxCurveundefined-
startSizepublicMinMaxCurveundefined-
startSizeSeparatepublicbooleanundefined-
startSizeYpublicMinMaxCurveundefined-
startSpeedpublicMinMaxCurveundefined-
stopActionpublicParticleStopActionundefined-
subEmitterInheritColorpublicbooleanundefined-
subEmitterInheritRotationpublicbooleanundefined-
subEmitterInheritSizepublicbooleanundefined-
subEmitterProbabilitypublicnumberundefined-
subEmitterTriggerpublicParticleSubEmitterTriggerundefined-
textureSheetEnabledpublicbooleanundefined-
tilesXpublicnumberundefined-
tilesYpublicnumberundefined-
trailAssetIdpublicstringundefined-
trailColorOverLifetimepublicMinMaxGradientundefined-
trailColorOverTrailpublicMinMaxGradientundefined-
trailLifetimepublicMinMaxCurveundefined-
trailModepublicParticleTrailModeundefined-
trailRatiopublicnumberundefined-
trailsEnabledpublicbooleanundefined-
trailWidthpublicMinMaxCurveundefined-
useUnscaledTimepublicbooleanundefined-
velocityEnabledpublicbooleanundefined-
velocitySpacepublicParticleSpaceundefined-
velocityXpublicMinMaxCurveundefined-
velocityYpublicMinMaxCurveundefined-

Accessors ​

particleCount ​

Get Signature ​

ts
get particleCount(): number;
Returns ​

number


time ​

Get Signature ​

ts
get time(): number;

Seconds into the current cycle (0..duration).

Returns ​

number

Methods ​

ApplyPreset() ​

ts
ApplyPreset(preset): void;

Replaces every setting with a .particle preset's (defaults where it says nothing) — e.g. ApplyPreset(Game.assets.Get('internal/particles/Fire')). Child systems in the preset are an editor concern; this sets this component only. Call Restart() to see it from the start.

Parameters ​

ParameterType
preset| Record<string, unknown> | ParticlePreset2D

Returns ​

void


Clear() ​

ts
Clear(withChildren?): void;

Parameters ​

ParameterTypeDefault value
withChildrenbooleantrue

Returns ​

void


Emit() ​

ts
Emit(count): void;

Emits count particles now, from the shape, whether or not the system is playing.

Parameters ​

ParameterType
countnumber

Returns ​

void


IsAlive() ​

ts
IsAlive(withChildren?): boolean;

Emitting, or particles left — this system's or a child's.

Parameters ​

ParameterTypeDefault value
withChildrenbooleantrue

Returns ​

boolean


IsEmitting() ​

ts
IsEmitting(): boolean;

Returns ​

boolean


IsPaused() ​

ts
IsPaused(): boolean;

Returns ​

boolean


IsPlaying() ​

ts
IsPlaying(): boolean;

Returns ​

boolean


IsStopped() ​

ts
IsStopped(): boolean;

Returns ​

boolean


Pause() ​

ts
Pause(withChildren?): void;

Holds the simulation where it is; the particles stay on screen. Play resumes.

Parameters ​

ParameterTypeDefault value
withChildrenbooleantrue

Returns ​

void


Play() ​

ts
Play(withChildren?): void;

---- Playback (Unity's ParticleSystem API). withChildren also drives child particle systems that aren't sub-emitters. ----

Parameters ​

ParameterTypeDefault value
withChildrenbooleantrue

Returns ​

void


Restart() ​

ts
Restart(withChildren?): void;

Stop + clear + play from the start (a fresh seed unless the seed is fixed).

Parameters ​

ParameterTypeDefault value
withChildrenbooleantrue

Returns ​

void


Simulate() ​

ts
Simulate(
   seconds, 
   withChildren?, 
   restart?
): void;

Fast-forwards by seconds (in 1/30 s steps) — e.g. to start an effect mid-way.

Parameters ​

ParameterTypeDefault value
secondsnumberundefined
withChildrenbooleantrue
restartbooleanfalse

Returns ​

void


Stop() ​

ts
Stop(withChildren?, clear?): void;

Stops emitting; live particles finish their lives unless clear.

Parameters ​

ParameterTypeDefault value
withChildrenbooleantrue
clearbooleanfalse

Returns ​

void

© 2026 PlayAdGentic