Bird
Raised Fist0
Unityframework~5 mins

Particle lifetime and speed in Unity - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What does particle lifetime mean in Unity's particle system?
Particle lifetime is the amount of time a particle exists before it disappears. It controls how long each particle stays visible.
Click to reveal answer
beginner
How does particle speed affect the movement of particles?
Particle speed determines how fast particles move when they are emitted. Higher speed means particles travel faster in the scene.
Click to reveal answer
beginner
Which Unity component controls particle lifetime and speed?
The ParticleSystem component controls both lifetime and speed through its Main Module settings.
Click to reveal answer
intermediate
How can you set a random lifetime for particles in Unity?
You can set a random lifetime by using the Start Lifetime property with a range, like Random Between Two Constants, so each particle has a different lifetime.
Click to reveal answer
beginner
What happens if you set particle speed to zero?
If particle speed is zero, particles will not move from their emission point but will still exist for their lifetime.
Click to reveal answer
What does the Start Lifetime property control in a Unity particle system?
AThe color of particles
BHow fast particles move
CHow long each particle exists before disappearing
DThe size of particles
If you want particles to move faster, which property should you increase?
AStart Lifetime
BStart Speed
CEmission Rate
DGravity Modifier
How can you make particles have different lifetimes randomly?
AUse Random Between Two Constants for Start Lifetime
BSet Start Lifetime to a fixed number
CChange Start Speed randomly
DAdjust Emission Rate
What happens if particle speed is set to zero?
AParticles change color
BParticles move very fast
CParticles disappear immediately
DParticles do not move from emission point
Which Unity module contains the settings for particle lifetime and speed?
AMain Module
BShape Module
CEmission Module
DRenderer Module
Explain how particle lifetime and speed affect the behavior of particles in Unity.
Think about how long particles stay and how fast they travel.
You got /4 concepts.
    Describe how to set a random lifetime for particles and why you might want to do that.
    Randomness helps make particles less uniform.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the startLifetime property of a ParticleSystem control in Unity?
      easy
      A. How long each particle stays alive before disappearing
      B. The speed at which particles move when emitted
      C. The color of the particles over time
      D. The size of the particles when they spawn

      Solution

      1. Step 1: Understand the meaning of startLifetime

        The startLifetime property sets the duration each particle exists after being emitted.
      2. Step 2: Compare with other properties

        Speed controls movement, color controls appearance, size controls scale. Only lifetime controls duration.
      3. Final Answer:

        How long each particle stays alive before disappearing -> Option A
      4. Quick Check:

        Particle lifetime = duration alive [OK]
      Hint: Lifetime means how long particles live before vanishing [OK]
      Common Mistakes:
      • Confusing lifetime with speed
      • Thinking lifetime affects color or size
      • Mixing up startLifetime with emission rate
      2. Which of the following is the correct way to set the particle speed to 5 in a Unity ParticleSystem script?
      easy
      A. particleSystem.startSpeed = 5f;
      B. particleSystem.speed = 5;
      C. particleSystem.setSpeed(5);
      D. particleSystem.main.startSpeed = 5f;

      Solution

      1. Step 1: Recall ParticleSystem API structure

        In Unity, startSpeed is inside the main module, accessed as particleSystem.main.startSpeed.
      2. Step 2: Check syntax correctness

        Options A and B are incorrect because startSpeed is not a direct property of ParticleSystem. particleSystem.setSpeed(5); uses a non-existent method.
      3. Final Answer:

        particleSystem.main.startSpeed = 5f; -> Option D
      4. Quick Check:

        Use main module to set startSpeed [OK]
      Hint: Use particleSystem.main.startSpeed to set speed [OK]
      Common Mistakes:
      • Trying to set startSpeed directly on particleSystem
      • Using incorrect method names
      • Forgetting to use the main module
      3. Consider this Unity C# code snippet:
      var ps = GetComponent<ParticleSystem>();
      var main = ps.main;
      main.startLifetime = 2f;
      main.startSpeed = 3f;
      Debug.Log(main.startLifetime + ", " + main.startSpeed);
      What will be printed in the console?
      medium
      A. 2.0, 3.0
      B. 2f, 3f
      C. 2, 3
      D. Error: Cannot assign to startLifetime

      Solution

      1. Step 1: Understand property types and output

        The startLifetime and startSpeed are floats. Assigning 2f and 3f sets them to 2.0 and 3.0 internally.
      2. Step 2: Check Debug.Log output format

        Logging floats with string concatenation prints "2, 3" because ToString() on whole number floats omits the decimal.
      3. Final Answer:

        2, 3 -> Option C
      4. Quick Check:

        Whole number floats print without decimals [OK]
      Hint: Whole number floats print without decimal in Debug.Log [OK]
      Common Mistakes:
      • Expecting decimal output like 2.0, 3.0
      • Thinking 'f' suffix prints in output
      • Assuming assignment causes error
      4. This code tries to set particle lifetime but causes an error:
      var ps = GetComponent<ParticleSystem>();
      ps.startLifetime = 4f;
      What is the main problem?
      medium
      A. startLifetime must be set via the main module, not directly
      B. startLifetime is a read-only property
      C. ParticleSystem component is missing
      D. startLifetime requires integer value, not float

      Solution

      1. Step 1: Understand ParticleSystem property access

        In Unity, startLifetime is inside the main module, so it cannot be set directly on ps.
      2. Step 2: Identify correct way to set lifetime

        Correct syntax is var main = ps.main; main.startLifetime = 4f;. Direct assignment causes error.
      3. Final Answer:

        startLifetime must be set via the main module, not directly -> Option A
      4. Quick Check:

        Use main module to set startLifetime [OK]
      Hint: Always set startLifetime via particleSystem.main [OK]
      Common Mistakes:
      • Trying to set startLifetime directly on ParticleSystem
      • Assuming startLifetime is read-only
      • Confusing missing component with syntax error
      5. You want to create a particle effect where particles live for 3 seconds and move faster over time, starting at speed 2 and increasing to 6. Which approach correctly sets this behavior in Unity?
      hard
      A. Set startLifetime = 3f and set startSpeed = 6f only
      B. Set startLifetime = 3f and use velocityOverLifetime module to increase speed from 2 to 6
      C. Set startLifetime = 6f and startSpeed = 2f
      D. Set startLifetime = 3f and change speed in Update() manually

      Solution

      1. Step 1: Set particle lifetime correctly

        Particles should live 3 seconds, so startLifetime = 3f is correct.
      2. Step 2: Use velocityOverLifetime for speed change

        To increase speed over time from 2 to 6, use the velocityOverLifetime module with a curve, not just startSpeed.
      3. Step 3: Evaluate other options

        Set startLifetime = 3f and set startSpeed = 6f only sets constant speed 6, not increasing. Set startLifetime = 6f and startSpeed = 2f has wrong lifetime. Set startLifetime = 3f and change speed in Update() manually is inefficient and unnecessary.
      4. Final Answer:

        Set startLifetime = 3f and use velocityOverLifetime module to increase speed from 2 to 6 -> Option B
      5. Quick Check:

        Use velocityOverLifetime for speed changes over time [OK]
      Hint: Use velocityOverLifetime to change speed during particle life [OK]
      Common Mistakes:
      • Setting only startSpeed for changing speed over time
      • Confusing lifetime and speed values
      • Trying to update speed manually every frame