
Learn: Game Designer Profession from Scratch to PRO
Learn MoreVideo games use particle systems to create effects such as smoke, clouds, fire, sparks, explosions, and loose and flowing substances. This technology enables the efficient simulation of numerous small objects that work together to create realistic visual effects. Particle systems are widely used to generate fog, magical flashes, and other effects that require dynamic interaction and visualization. Their flexibility and customization allow developers to create unique and impressive scenes, enhancing the overall gaming experience.
A particle system is an essential element in every game engine. In the latest version of Unreal Engine, it is called Niagara, while Unity, which will be discussed below, uses the term Particle System. In this article, we will take a detailed look at a particle system in Unity, as well as how to create and configure one to achieve the desired visual effects in your game.
Unity offers a powerful built-in Particle System, allowing you to create and manage thousands of particles in real time. This system is ideal for implementing various visual effects in games and applications. Unlike the Visual Effect Graph add-on, which uses the GPU to generate millions of particles, our main focus is the Particle System, which is already available in Unity. We'll explore its capabilities, settings, and application for creating stunning visualizations.
Read also:
- Unity Tutorials: Installing the Engine, Setting Up the Interface, and Working with Objects
Creating a Particle System
To add a particle system to a scene, open the Hierarchy window and click the "+" icon. In the menu that appears, select Effects, then click Particle System.
An alternative way to open the same menu is to right-click an empty space in the Hierarchy window or select the corresponding item in the top panel, selecting GameObject.

A cone emitting white translucent circles will appear in the Scene window. This is a demonstration of the particle system with default settings. By adjusting these parameters, we can change the appearance and behavior of particles, adapting them to the specific requirements of the project.

When the particle system is activated, the Particles panel with Pause, Restart, and Stop buttons appears in the lower right corner of the Scene window. This panel allows you to control particle generation: you can start, stop, restart, or pause the process to observe their behavior.
The particle system in the game engine can not only be moved but also rotated at the desired angle, just like any other object. All changes to the position and orientation of the particle system are displayed in the Inspector window in the Transform component. However, more important for customizing visual effects is the Particle System component located below. This component controls all aspects of the particle system, such as its appearance, size, speed, and behavior. Properly setting up the Particle System allows you to create spectacular visual elements that significantly enhance the gameplay experience.
The particle system can be attached to any object, allowing it to move with it. For example, if you created a fire effect, you could attach it to a torch model to achieve a realistic visual effect. To add a Particle System component to an existing object, simply select it, open the Inspector window, click 'Add Component', then select the Effects section and select Particle System. This will allow you to create dynamic and expressive visual effects in your project.

The Particle System component, as seen in The screenshot shown includes many modules, each of which controls specific settings for the behavior and appearance of particles. The particle system activates only those modules that are checked. In the screenshot, the Emission, Shape, and Renderer modules are activated by default, allowing you to effectively customize the visual effects and particle generation parameters.
The Main module, which is expanded by default and is always active, includes the basic settings for the particle generator. This module is unnamed in the inspector, but in the official Unity documentation it is called the Main module. Let's take a closer look at its functionality and key parameters.
Main Module Settings
The Main module of the Particle System component includes 25 parameters, among which the key one is Duration. This parameter determines the duration of particle emission in seconds. If you set the value to 1, particles will be emitted for one second. Setting the value to 10 will allow particles to be emitted for ten seconds. Properly setting Duration affects the visual effects and overall perception of animation in your project.
The effect of the Duration parameter will only be noticeable if you don't activate the Looping option. Otherwise, particles will be generated infinitely, making Duration ineffective. In this context, Duration determines the duration of one particle generation cycle, which is important to consider when setting visual effects.
Looping is a powerful tool that can be used in various situations to optimize processes and increase work efficiency. It is especially useful when it comes to repetitive tasks, such as data processing, process automation, or creating loops in programming. Looping can significantly save time and resources by eliminating the need to manually perform the same actions multiple times.
Applications Looping finds its place in analytics, where it is necessary to process large volumes of data, as well as in software development, where the implementation of repetitive functions is required. This method can also be useful in training, when new skills need to be mastered through repetition. Using Looping improves the quality of work and reduces the likelihood of errors, making it an indispensable tool in every professional's arsenal.
Therefore, Looping should be used in cases where you need to increase productivity, minimize time spent, and improve overall work efficiency.
If you want the flame on a torch to burn constantly, the water in a fountain to gush non-stop, and fog to spread along the ground continuously, you should enable the Looping option. If you want sparks from an explosion to fly only once, leaves from a tree to fall only once, and a cloud of dust under the character's feet to rise only when they jump, you should leave Looping enabled.
Enabled Looping allows you to change the Prewarm parameter. When enabled, the particle system will appear as if it has already completed one full cycle at game start, and particles will be generated continuously. Otherwise, you will see particles appear gradually, starting with the first one. This improves the visual perception of the game and creates a smoother gameplay.

The Start Delay parameter is the delay time in seconds before the generator starts generating particles. It is important to note that using the Prewarm parameter makes Start Delay unavailable, since in this case the delay loses its significance. Understanding these parameters properly will help optimize the visual effects creation process.
Start Lifetime specifies the lifespan of each particle in seconds before it disappears. As shown in the example, particles with shorter lifetimes travel shorter distances, confirming the importance of this parameter in particle rendering. The lower the Start Lifetime value, the faster the particles disappear, which affects the overall dynamics and perception of the animation.

Start Speed is the initial speed of the particles. The higher this value, the further each particle can move before its lifetime expires. Optimizing the initial velocity of particles can increase their range and improve visual effects in animations and games. To achieve the best results, it's important to consider how Start Speed affects particle dynamics and behavior under different conditions.
This section covers the 3D Start Size and Start Size parameters. We'll start with the Start Size parameter, which determines the initial size of the particles along all three axes: X, Y, and Z. Enabling the 3D Start Size option allows you to set individual sizes for each axis, providing a more flexible approach to customizing visual effects. This is especially useful for creating unique and varied particles in your projects.
In the example shown, we first set the Start Size to 5, which resulted in the particles becoming larger and visually merging into something resembling steam. Next, using the 3D Start Size, we set the X axis to 5 only, which resulted in the particles being stretched horizontally. In the third case, we set the Y axis to 5 only, which resulted in the particles being stretched vertically. These settings allow you to achieve various visual effects and control the perception of particles in space.

Start Rotation and 3D Start Rotation function on a similar principle. In the Start Rotation settings, you can set the angle of rotation of the object along all axes at once. Activating the 3D Start Rotation option allows you to set the rotation angle for each axis individually. This allows you to achieve more precise and varied effects when working with 3D graphics.
Flip Rotation allows you to set a value from 0 to 1, adding variety to the rotation of particles. This causes some particles to flip in the opposite direction, creating an interesting visual effect. The most noticeable difference is observed when setting a value of 0.5. This significantly improves visualization and makes the animation more dynamic and appealing.
Start Color determines the initial color of the particles. This parameter is important for customizing visual effects and allows you to create a unique atmosphere by setting a specific hue for particles at the start of their animation. Choosing the right starting color can significantly impact the perception and overall impression of a project.
Gravity Source provides the ability to choose between 2D and 3D physics for simulating particle gravity. To view the general settings for each physics type, go to the menu at the top, select Edit, and then Project Settings. In this menu, you'll find the Physics and Physics 2D sections. It's recommended not to change these settings without a clear understanding of their impact on the project. The Gravity Modifier section, next to Gravity Source, controls the effect of gravity on particles. At 0, particles are weightless. Increasing this value causes particles to be attracted to the ground, allowing you to simulate various gravity effects in visualizations and animations. Setting up the Gravity Modifier is important for achieving realistic particle behavior depending on the project requirements.

Simulation Space determines how particles interact with coordinates in space. You can choose local coordinates (Local), world coordinates (World), or coordinates of another object (Custom). When using local coordinates, particles follow the Particle System object, moving with it. If you want to create an effect in which particles remain in place, leaving a trail behind the object, you should choose world coordinates. This choice affects the visual perception and behavior of particles in your scene.
Smoke emanating from a torch on a wall can be left in local space. However, if the torch is held by a character, for greater realism, it is better to generate smoke particles in global space. This will create the effect of a smoke trail that will remain behind the torch as the character moves. This approach will improve visual perception and add depth to the gameplay.

In Simulation Space: Custom mode, particles begin their existence in the local coordinates of a given object. In the example shown, particles are generated by a blue sphere, but their coordinates are tied to a red cube. This means that when the cube is moved left or right, the particles will move in sync with it. This approach allows for dynamic effects and simplifies particle control based on the object's movement.
An obvious application of this phenomenon is wind, which moves raindrops in different directions. This interaction between atmospheric conditions and precipitation demonstrates how wind can alter the trajectory of raindrops, creating unique meteorological effects. Studying these dynamics is important for understanding climate processes and forecasting weather conditions.

Simulation Speed allows you to adjust the speed of the particle system, which is an important function for process optimization. The normal speed is set to 1. Setting the value to 0 will stop the system. A value of 2 will run processes twice as fast, while a value of 10 will run them ten times as fast. This setting helps improve system efficiency and tailor it to specific tasks.
Delta Time plays a key role in determining how the particle system depends on time. Unity has a timeScale parameter that controls how time flows in the game. When timeScale is set to 1, time flows at normal speed. Setting timeScale to 2 doubles the speed of time, while setting timeScale to 0.5 slows it down by half. This allows for mechanics like bullet time, which we've mentioned in previous articles. Setting timeScale to 0 stops time, allowing you to pause the game. Proper use of timeScale and Delta Time can significantly enrich the gameplay experience and add interesting elements to game development.
If you need the system to continue generating particles while paused, the Delta Time parameter can help. In Scaled mode, the system is dependent on time: if time stops, the particles will also cease to exist. In contrast, in Unscaled mode, particles operate independently of game time, continuing their lifespan regardless of its speed.
The Scaling Mode parameter determines how the particle system applies the Transform component to particles. This parameter affects how Scale affects particles, determining their sizes along three axes: X, Y, and Z. The Scale parameter is responsible for changing the width or narrowness of particles, which allows you to control their visual perception and dynamics in space. Properly setting Scaling Mode and Scale can significantly affect the overall effect and quality of the animation created by the particle system.
Scaling Mode offers three operating modes: Hierarchy, Local, and Shape. Each of these modes is designed to optimize processes and improve scaling management in various applications. Hierarchy mode allows you to effectively manage hierarchical structures, ensuring smooth interaction between elements. Local mode is designed for local adjustment of scaling parameters, allowing you to more accurately adapt to specific requirements. Shape mode optimizes the shapes and sizes of objects, ensuring their effective use in specific contexts. These three modes allow the user to choose the most appropriate approach depending on their tasks and goals.
When selecting Hierarchy mode, the particle system's scale will change according to the scale of both the system itself and its parent object. For example, if you place a particle system inside a torch object in the Hierarchy window and decide to increase the torch's width, the particles will also become wider. In the following example, we made the particle system a child of a sphere and increased its X-axis scale to 5 units (the default X-axis scale is 1). As you can see, changing the sphere's scale also increased the particles' width. This property allows you to easily control the appearance of the particle system depending on changes in parent objects, which greatly simplifies the process of customizing visual effects in your projects.

In Local mode, changes to the Scale parameter affect only the particle system. In this mode, the particle size remains constant, regardless of changes made to the parent object. This allows for more precise control over visual effects while maintaining a stable particle size.
The third mode, Shape, does not change the particle size, but only their position. This parameter is associated with the Shape module, which we will discuss in more detail below. The Shape module defines the direction of particles and the three-dimensional volume in the form of a geometric shape within which they are formed. If the parent object increases in width, then this volume will expand accordingly, which will lead to an increase in the dispersion of particles.

In the given example, the contours of the cone shape, inside which the generation of particles occurs, are displayed above the sphere. By changing the scale of the sphere's x-axis, we change the cone's width. This also changes the particle radius, but their size remains constant.
The Play On Awake parameter controls the startup of the particle system in the game engine. It determines whether particles will be created automatically when the game starts or when an object with particles appears in the scene. If this parameter is disabled, the particle system is activated only when certain conditions are met, which can be specified in code. This allows for more flexible control of visual effects and optimizes game performance by activating particles only when absolutely necessary.
Emitter Velocity Mode sets additional velocity for particles and offers three operating modes: Transform, Rigidbody, and Custom. These modes allow you to fine-tune particle behavior depending on the needs of your project, providing maximum flexibility in their use. Transform mode allows you to change the velocity of particles based on the transformation of an object, Rigidbody mode uses physics properties to control movement, and Custom mode allows you to set individual velocity parameters for unique effects.
The Transform mode means that each particle will be assigned the velocity specified by the Transform component upon creation. To demonstrate this principle, we configured the particle system so that they spawn in a straight line. To prevent the particles from moving outside the green sphere after spawning, we changed the Simulation Space parameter to World. This allows you to control the behavior of particles in space, ensuring stable display and control of their movement.

When the sphere moves left or right, particles in the surrounding space follow it, lining up in a column. However, when the sphere changes direction, this column of particles continues to move in the direction the sphere was originally facing. This phenomenon illustrates the principle of inertia of particles in a medium, which can be useful for understanding the dynamics and interactions of objects in physics.
In the Transform mode of the Emitter Velocity Mode parameter, each particle receives a velocity and direction from the Transform component of the sphere. When the sphere moves to the left, its velocity is -10, and all particles also move at a velocity of -10. As a result, it appears that the particles are 'stuck' to the sphere. However, when the sphere changes direction and begins moving to the right at a velocity of 10, the particles that were previously emitted continue to move at their original velocity of -10. This causes them to continue moving in the opposite direction, which creates the effect of divergence between the motion of the sphere and the particles.
The Rigidbody mode in particle systems adds velocity based on the physical velocity of an object. For a particle system to work correctly, it is necessary to enable the Rigidbody component, which ensures physically correct object movement. This approach allows for realistic interaction of particles with the environment and other objects, which significantly improves visual effects in games and applications.

In this context, it is important to note that to move the sphere in Transform mode, we used the transform.Translate method, whereas in Rigidbodies used AddForce. The difference between these approaches was discussed in detail in a separate article. Briefly, the transform.Translate method moves the object without regard to physics, while AddForce interacts with the physics engine, allowing the sphere to decelerate gradually after the button is released. When configured correctly, Rigidbodies reduce the sphere's velocity smoothly, and each additional application of force results in a smaller increase in velocity, creating a more natural and smooth motion curve. Custom mode allows you to manually adjust the incremental velocity for particles along the X, Y, and Z axes. In the example shown, the particles' X velocity is set to 5. This causes them to move to the right upon spawning. This mode allows for fine-grained control over particle behavior in space, which can be especially useful for creating effects in animations and games. Adjusting the speed for each axis allows you to achieve the desired dynamics and visual effect, making the project more attractive and interesting for users.

The Max Particles parameter determines the maximum number of particles that can simultaneously be in the scene from this generator. When the set limit is reached, new particles will not be spawned until the existing ones are gone. This allows you to effectively manage performance and visual effects in your project. Properly setting this parameter helps avoid system overload and ensures smooth graphics.
The Auto Random Seed parameter is responsible for random particle generation at each run. This is especially noticeable when the Looping parameter is disabled, when particles are generated only once per cycle. If Auto Random Seed is disabled, the Random Seed field will appear. In this field, you can specify a specific number based on which particles will be generated. For example, with a value of 210, generation will always be the same, while with a value of 211 or 0, the results will vary. This helps achieve consistency in particle generation: if you need them to always appear in the same order, simply select an appropriate number and use it. In addition, a Reseed button is available, which generates a random value for the Random Seed field.

The Stop Action parameter determines the behavior particle systems upon termination and disappearance. There are four possible values for this parameter.
- None — nothing will happen.
- Disable — the object will be disabled.
- Destroy — the object will be destroyed.
- Callback — required to call the OnParticleSystemStopped() method in the script connected to the particle system and, accordingly, execute everything you specify in it.
The Stop Action parameter will not function if particle generation is in loop mode, that is, if the Looping option is activated.

The Culling Mode parameter controls the behavior of the particle system when particles are outside the camera's field of view. This parameter allows you to optimize performance by excluding the rendering of elements that are not visible to the user. Properly setting Culling Mode is important for efficient performance of graphics applications and games, as it helps reduce the load on CPU and GPU resources.
- Pause — pauses the simulation of a system while it is out of frame.
- Pause and Catch-up — does the same, but when the system enters the camera's field of view, the simulation returns to a state that makes it appear as if there was no pause.
- Always Simulate — the particle system runs regardless of whether the camera sees it or not.
- Automatic — for looped systems, turns on Pause when they are out of view, and turns on Always Simulate for everything else.

The Ring Buffer Mode parameter controls the lifetime of particles in the system, allowing them to not disappear until the total number reaches the value set in Max Particles. When this value is reached, old particles will be replaced by new ones. This mode thus ensures a constant number of active particles, which can be useful for creating stable visual effects in graphics applications.
Emission, Shape, and Renderer Modules
Three modules are activated by default. The Emission module is responsible for the number and method of particle emission. It includes several parameters. One of the key parameters is Rate over Time, which specifies the number of particles created per second. The default value of this parameter is set to 10.

The second parameter, Rate over Distance, allows you to customize the emission of particles depending on Distance traveled, not time. In this case, particles are emitted for each unit passed. This unit of measurement corresponds to one meter (if you create a simple cube in the scene, its dimensions will be equal to one cubic meter). Using this parameter allows for more precise control over particle behavior depending on distance, which can significantly improve the visual effects in your scene.
Setting this parameter to 1 will create one particle for each unit passed. In the example below, we set the value to 10. Note that particles are not generated when the locomotive is stationary. However, as soon as it starts moving, steam starts coming out of its pipe.

Note that the number of particles can be determined not only by a fixed value. There is a small triangle next to the value input field. Clicking on it will open a menu with four options that offer different ways to set the value. This allows you to more flexibly customize the parameters depending on your needs.
- Constant — one constant number.
- Curve — a value defined by a curve.
- Random Between Two Constants — a random value between two constant values.
- Random Between Two Curves — a random value is chosen between two curves.

The third item in the Emission module is responsible for the sudden release of a certain number of particles, called Burst. This parameter is ideal for creating an explosion effect, allowing you to fine-tune the characteristics of the particles and their behavior. Using Burst, you can achieve impressive visual effects and dynamic scenes in your projects.
To create a particle explosion effect, you need to click the "+" button in the lower right corner. Five parameters are available for customizing the behavior of particles, allowing you to precisely adjust their movement and appearance. Using these parameters, you can achieve the desired result and create unique visual effects.
- Time — how many seconds after the Particle System starts to emit particles.
- Count — how many particles will be created.
- Cycles — how many times the number of particles specified in Count will be generated. For example, if Count is 2 and Cycles is 4, then eight particles will be created during the explosion.
- Interval — the delay between the particles when they appear. Although it seems that they appear simultaneously, they are actually created one after another. The minimum interval between them, set by default in Unity, is 0.01. If you set it higher, you will see how the particles fly out of the generator, like a machine gun fire.
- Probability — the probability with which particles will be created. The value can be set between 0 and 1. At 0, particles will definitely not appear. English: If 1, they will definitely appear.

Now let's look at another key module - Shape. This module is responsible for defining the space for generating particles. It can be a geometric figure or a surface. Based on the selected shape, the direction of movement of the particles is set. The required shape can be selected in the Shape parameter via the drop-down menu, which allows you to easily customize the visualization parameters.

This list presents There are 13 points. The first five of these relate to three-dimensional geometric shapes: sphere, hemisphere, cone, donut, and cube. You can change their sizes, angles, and spatial positions using the parameters specified in the module below. This allows you to flexibly customize objects for various needs, be it design, animation, or creating 3D models.

Mesh, Mesh Renderer, and Skinned Mesh Renderer are key elements for creating particles on the surface of a polygonal mesh. In this case, particles are emitted in the direction of their normals, which creates a natural effect of their propagation. The Skinned Mesh Renderer is used for meshes that are attached to a skeleton, allowing them to deform in response to joint movements. This is especially important for character animation, where the realistic interaction of particles with moving model elements creates a more vibrant and dynamic image. Using these components can significantly improve the visual effects and overall atmosphere of a game or animation project.
Sprite and Sprite Renderer play a key role in generating particles based on the shape of a sprite. Using shapes such as Circle, Edge, and Rectangle, you can create a variety of 2D shapes, including circles, straight lines, and quadrilaterals, to effectively visually represent particles. These tools allow developers to fine-tune the appearance and behavior of particles, providing a high degree of customization and improving the overall graphics of the game.

The Renderer module is responsible for visualizing particles in your project. It allows you to customize the appearance of various elements, such as stars, sparks, bullets, rocks, drops, and smoke clumps. The module offers a variety of parameters that help you refine and tailor the appearance of particles to your needs. This provides flexibility and the ability to create unique effects to enhance visual perception.
The first and most important element is the Render Mode. It determines how your particles will be represented: as flat sprites or volumetric models. If you want to use flat sprites, choose the Billboard option. This sprite is always oriented toward the camera and offers several sub-options. For example, Stretched Billboard is suitable for situations where scaling is required. Horizontal Billboard creates particles parallel to the floor, and Vertical Billboard creates particles perpendicular to the Y-axis. If you want the particles to have a three-dimensional appearance, you should use the Mesh option. Choosing the right rendering mode will help you achieve the desired visual effect and improve the perception of your content.

The Unity particle system has 21 modules, which are not activated by default, offer unique options for customizing the appearance and behavior of particles, including numerous fine-tuning parameters. These modules allow developers to create more complex and visually appealing effects, improving overall graphical quality and in-game interaction.
The Trails module creates a trail of particles, adding dynamism and visual appeal. Meanwhile, the Color over Lifetime module controls the color changes of particles throughout their lifetime, allowing for unique visual effects. These modules require detailed study, so we will discuss them in more detail in the context of specific examples of effect creation.
Game Designer Profession from Scratch to PRO
A game designer creates the structure of a game. They think through the idea, rules, gameplay, and decide what emotions the plot will evoke in players. You'll master game design principles from scratch and learn how to work with popular engines like Unity and Unreal Engine. You'll learn how to retain player interest and monetize your games. We'll help you launch a career in the gaming industry.
Find out more
