/TimelineParticleControl

An example of controlling particle system from timeline.

Primary LanguageC#

Timeline Particle System Control Example

This is an example that shows how to control particle systems from a custom track class.

gif gif

Comparison with Control Track

The standard Control Track provides basic functionalities to control a particle system within a timeline track. Although it's enough for most cases, it has some small limitations.

  • It only provides on/off switch. An extra Animation Track is needed to control particle parameters.
  • The Inherit Velocity module doesn't work with the Control Track.
  • It overrides the random seed number with the same value even if there are multiple particle systems under the hierarchy.
  • It uses the fixed delta time as a simulation interval. This is not ideal to get smooth animation.

The custom track class (ParticleSystemControlTrack) contained in this example provides the following functionalities.

  • Playhead scrubbing support (not perfect; reset on rewinding).
  • Emission rate control. It's controllable from both inline animation curves and ease-in/out curves.
  • Inherit Velocity module support.
  • Transform snapping support.
  • Random number override just happens with a single particle system.
  • Animation with system delta time.

License

Copyright (c) 2017 Unity Technologies

This repository is to be treated as an example content of Unity; you can use the code freely in your projects. Also see the FAQ about example contents.