Unity - Scripting API: ParticleSystem (2024)

Description

Script interface for the Built-in Particle System. Unity's powerful and versatile particle system implementation.

General parameters

The Particle System's general parameters are kept inside a special Main module. These parameters are visible in the Inspector above all the other modules:

Unity - Scripting API: ParticleSystem (1)

In script, these parameters are accessible through ParticleSystem.main.

Accessing module properties

Particle System properties are grouped by the module they belong to, such as ParticleSystem.noise and ParticleSystem.emission. These properties are structs, but do not behave like normal C# structs. They are simply interfaces directly into the native code, so it is important to know how to use them, compared to a normal C# struct.

The key difference is that it is not necessary to assign the struct back to the Particle System component. When you set any property on a module struct, Unity immediately assigns that value to the Particle System.

Also, because each module is a struct, you must cache it in a local variable before you can assign any new values to the module. For example, instead of:
ParticleSystem.emission.enabled = true; // Doesn't compile
write:
var emission = ParticleSystem.emission; // Stores the module in a local variable
emission.enabled = true; // Applies the new value directly to the Particle System

Module effect multipliers

Every module has special multiplier properties that allow you to change the overall effect of a curve without having to edit the curve itself. These multiplier properties are all named after the curve they affect - for instance ParticleSystem.emission.rateMultiplier controls the overall effect of ParticleSystem.emission.rate in a given system.

Constant value shorthand

Parameters support a shorthand notation for simple constant values. To set a constant value for a parameter, all you need to do is assign a number to it. It is not necessary to create a MinMaxCurve or MinMaxGradient object in the ParticleSystemCurveMode.Constant mode.

For example, instead of:
var emission = ParticleSystem.emission;
emission.rate = new ParticleSystem.MinMaxCurve(5.0f);
write:
var emission = ParticleSystem.emission;
emission.rate = 5.0f;

Performance note: When setting properties on particle modules, the settings are passed immediately into native code. This gives the best performance. This means that setting properties on a module struct doesn't set something in script that requires setting back to the Particle System; it all happens automatically.

Additional resources: Particle.

Properties

collisionScript interface for the CollisionModule of a Particle System.
colorBySpeedScript interface for the ColorByLifetimeModule of a Particle System.
colorOverLifetimeScript interface for the ColorOverLifetimeModule of a Particle System.
customDataScript interface for the CustomDataModule of a Particle System.
emissionScript interface for the EmissionModule of a Particle System.
externalForcesScript interface for the ExternalForcesModule of a Particle System.
forceOverLifetimeScript interface for the ForceOverLifetimeModule of a Particle System.
has3DParticleRotationsDetermines whether the Particle System rotates its particles around only the Z axis, or whether the system specifies separate values for the X, Y and Z axes.
hasNonUniformParticleSizesDetermines whether the Particle System uses a single value for the width and height (and depth, when using meshes), or if the system specifies different values for each axis.
inheritVelocityScript interface for the InheritVelocityModule of a Particle System.
isEmittingDetermines whether the Particle System is emitting particles. A Particle System may stop emitting when its emission module has finished, it has been paused or if the system has been stopped using Stop with the StopEmitting flag. Resume emitting by calling Play.
isPausedDetermines whether the Particle System is paused.
isPlayingDetermines whether the Particle System is playing.
isStoppedDetermines whether the Particle System is in the stopped state.
lifetimeByEmitterSpeedScript interface for the Particle System Lifetime By Emitter Speed module.
lightsScript interface for the LightsModule of a Particle System.
limitVelocityOverLifetimeScript interface for the LimitVelocityOverLifetimeModule of a Particle System. .
mainAccess the main Particle System settings.
noiseScript interface for the NoiseModule of a Particle System.
particleCountThe current number of particles (Read Only). The number doesn't include particles of child Particle Systems
proceduralSimulationSupportedDoes this system support Procedural Simulation?
randomSeedOverride the random seed used for the Particle System emission.
rotationBySpeedScript interface for the RotationBySpeedModule of a Particle System.
rotationOverLifetimeScript interface for the RotationOverLifetimeModule of a Particle System.
shapeScript interface for the ShapeModule of a Particle System.
sizeBySpeedScript interface for the SizeBySpeedModule of a Particle System.
sizeOverLifetimeScript interface for the SizeOverLifetimeModule of a Particle System.
subEmittersScript interface for the SubEmittersModule of a Particle System.
textureSheetAnimationScript interface for the TextureSheetAnimationModule of a Particle System.
timePlayback position in seconds.
totalTimeTotal playback time in seconds, including the Start Delay setting.
trailsScript interface for the TrailsModule of a Particle System.
triggerScript interface for the TriggerModule of a Particle System.
useAutoRandomSeedControls whether the Particle System uses an automatically-generated random number to seed the random number generator.
velocityOverLifetimeScript interface for the VelocityOverLifetimeModule of a Particle System.

Public Methods

AllocateAxisOfRotationAttributeEnsures that the axisOfRotations particle attribute array is allocated.
AllocateCustomDataAttributeEnsures that the customData1 and customData2 particle attribute arrays are allocated.
AllocateMeshIndexAttributeEnsures that the meshIndices particle attribute array is allocated.
ClearRemove all particles in the Particle System.
EmitEmit count particles immediately.
GetCustomParticleDataGet a stream of custom per-particle data.
GetParticlesGets the particles of this Particle System.
GetPlaybackStateReturns all the data that relates to the current internal state of the Particle System.
GetTrailsReturns all the data relating to the current internal state of the Particle System Trails.
IsAliveDoes the Particle System contain any live particles, or will it produce more?
PausePauses the system so no new particles are emitted and the existing particles are not updated.
PlayStarts the Particle System.
SetCustomParticleDataSet a stream of custom per-particle data.
SetParticlesSets the particles of this Particle System.
SetPlaybackStateUse this method with the results of an earlier call to ParticleSystem.GetPlaybackState, in order to restore the Particle System to the state stored in the playbackState object.
SetTrailsUse this method with the results of an earlier call to ParticleSystem.GetTrails, in order to restore the Particle System to the state stored in the Trails object.
SimulateFast-forwards the Particle System by simulating particles over the given period of time, then pauses it.
StopStops playing the Particle System using the supplied stop behaviour.
TriggerSubEmitterTriggers the specified sub emitter on all particles of the Particle System.

Static Methods

ResetPreMappedBufferMemoryReset the cache of reserved graphics memory used for efficient rendering of Particle Systems.
SetMaximumPreMappedBufferCountsLimits the amount of graphics memory Unity reserves for efficient rendering of Particle Systems.
Unity - Scripting API: ParticleSystem (2024)

References

Top Articles
P2 hCG Diet Cucumber Noodle Recipe: Asian Ginger Chicken w/ Grapefruit
8 Back of the Box Recipes That You Need to Try
Somboun Asian Market
Promotional Code For Spades Royale
What is Mercantilism?
Tesla Supercharger La Crosse Photos
Boomerang Media Group: Quality Media Solutions
Lesson 3 Homework Practice Measures Of Variation Answer Key
4Chan Louisville
C-Date im Test 2023 – Kosten, Erfahrungen & Funktionsweise
Nashville Predators Wiki
Stihl Km 131 R Parts Diagram
Dr. med. Uta Krieg-Oehme - Lesen Sie Erfahrungsberichte und vereinbaren Sie einen Termin
Byte Delta Dental
Cinebarre Drink Menu
Nissan Rogue Tire Size
2016 Hyundai Sonata Refrigerant Capacity
3S Bivy Cover 2D Gen
Why Is 365 Market Troy Mi On My Bank Statement
eHerkenning (eID) | KPN Zakelijk
The EyeDoctors Optometrists, 1835 NW Topeka Blvd, Topeka, KS 66608, US - MapQuest
Jeffers Funeral Home Obituaries Greeneville Tennessee
Play Tetris Mind Bender
4Oxfun
Mikayla Campinos: Unveiling The Truth Behind The Leaked Content
Craigslist Comes Clean: No More 'Adult Services,' Ever
Tracking every 2024 Trade Deadline deal
Worthington Industries Red Jacket
Imagetrend Elite Delaware
Allegheny Clinic Primary Care North
Metro By T Mobile Sign In
Fandango Pocatello
Gasbuddy Lenoir Nc
Rvtrader Com Florida
Old Peterbilt For Sale Craigslist
Obsidian Guard's Skullsplitter
Build-A-Team: Putting together the best Cathedral basketball team
Natashas Bedroom - Slave Commands
RALEY MEDICAL | Oklahoma Department of Rehabilitation Services
Deshuesadero El Pulpo
Keir Starmer looks to Italy on how to stop migrant boats
Dinar Detectives Cracking the Code of the Iraqi Dinar Market
Rocky Bfb Asset
Rage Of Harrogath Bugged
Sallisaw Bin Store
Yourcuteelena
How To Get To Ultra Space Pixelmon
Human Resources / Payroll Information
Rite Aid | Employee Benefits | Login / Register | Benefits Account Manager
Divisadero Florist
All Obituaries | Roberts Funeral Home | Logan OH funeral home and cremation
How to Choose Where to Study Abroad
Latest Posts
Article information

Author: Margart Wisoky

Last Updated:

Views: 5984

Rating: 4.8 / 5 (58 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Margart Wisoky

Birthday: 1993-05-13

Address: 2113 Abernathy Knoll, New Tamerafurt, CT 66893-2169

Phone: +25815234346805

Job: Central Developer

Hobby: Machining, Pottery, Rafting, Cosplaying, Jogging, Taekwondo, Scouting

Introduction: My name is Margart Wisoky, I am a gorgeous, shiny, successful, beautiful, adventurous, excited, pleasant person who loves writing and wants to share my knowledge and understanding with you.