Unity implements Particle Systems with a component, so placing a Particle System in a Scene is a matter of adding a pre-made GameObject (menu: GameObject > Effects > Particle System) or adding the component to an existing GameObject (menu: Component > Effects > Particle System). Because the component is quite complicated, the Inspector is divided into a number of collapsible sub-sections or modules that each contain a group of related properties. Additionally, you can edit one or more systems at the same time using a separate Editor window accessed via the Open Window button in the Inspector. See documentation on the Particle System component and individual Particle System modules to learn more.
When a GameObject with a Particle System is selected, the Scene view contains a small Particle Effect panel, with some simple controls that are useful for visualising changes you make to the system’s settings.
The Playback Speed allows you to speed up or slow down the particle simulation, so you can quickly see how it looks at an advanced state. The Playback Time indicates the time elapsed since the system was started; this may be faster or slower than real time depending on the playback speed. The Particle Count indicates how many particles are currently in the system. The playback time can be moved backwards and forwards by clicking on the Playback Time label and dragging the mouse left and right. The buttons at the top of the panel can be used to pause and resume the simulation, or to stop it and reset to the initial state.
Varying properties over time
Many of the numeric properties of particles or even the whole Particle System can vary over time. Unity provides several different methods of specifying how this variation happens:
Constant: The property’s value is fixed throughout its lifetime.
Curve: The value is specified by a curve/graph.
Random Between Two Constants: Two constant values define the upper and lower bounds for the value; the actual value varies randomly over time between those bounds.
Random Between Two Curves: Two curves define the upper and lower bounds of the the value at a given point in its lifetime; the current value varies randomly between those bounds.
Similarly, the Start Color property in the main module has the following options:
Color: The particle start color is fixed throughout the system’s lifetime.
Gradient: Particles are emitted with a start color specified by a gradient, with the gradient representing the lifetime of the Particle System.
Random Between Two Colors: The starting particle color is chosen as a random linear interpolation between the two given colors.
Random Between Two Gradients: Two colors are picked from the given Gradients at the point corresponding to the current age of the system; the starting particle color is chosen as a random linear interpolation between these colors.
For other color properties, such as Color over Lifetime, there are two separate options:
Gradient: The color value is taken from a gradient which represents the lifetime of the Particle System.
Random Between Two Gradients: Two colors are picked from the given gradients at the point corresponding to the current age of the Particle System; the color value is chosen as a random linear interpolation between these colors.
Color properties in various modules are multiplied together per channel to calculate the final particle color result.
Animation bindings
All particle properties are accessible by the Animation system, meaning you can keyframe them in and control them from your animations.
To access the Particle System’s properties, there must be an Animator component attached to the Particle System’s GameObject. An Animation Controller and an Animation are also required.
To animate a Particle System property, open the Animation Window with the GameObject containing the Animator and Particle System selected. Click Add Property to add properties.
Scroll to the right to reveal the add controls.
Note that for curves, you can only keyframe the overall curve multiplier, which can be found next to the curve editor in the Inspector.
Is something described here not working as you expect it to? It might be a Known Issue. Please check with the Issue Tracker at issuetracker.unity3d.com.
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thanks for helping to make the Unity documentation better!