Open Source Particle System

Author: Nick Tziamihas, Michael Moiropoulos

Summary
The particle system integrated in Unity3D, although conclusive, does not expose every variable and method tied to particle generarion and animation. This makes particle system modifications difficult and some times impossible. In this project, we create our own particle system from scratch, and expose all of its aspects to the developer.





Features
This sample particle system creates an ellipsoid particle emitter that can be attached to any Game Object. The sample allows local velocity, random velocity, particle color animation, billboard setting, particle speed, lifetime, quantity and angular velocity. Additional features can be added manually, as needed following the examples from this template.

Possible applications :


 * Time Scale independent particle systems (for particle systems decorating pause screens).
 * Particle systems with 3D geometry (Meteor Storms, Volcanic eruptions, debris from damaged spaceships, etc).
 * Attaching scripts to each particle to achieve unique behaviours (dealing damage to enemies, triggering events, etc).

Integration
Create an empty object in your scene that will act as a particle emitter. Attach the OSParticleEmitter script to it and set its particle settings in the Inspector. Create a prefab for your particle. A 2D plane mesh with a Particle Shader will produce normal particle behaviour. Using different meshes and shaders can produce more unique results (see "Possible applications" above). Drag the prefab on the Particle Object variable in the Emitter's Inspector.

Disclaimer
This script is by no means a substitute for Unity's built-in particle systems. It should be used in addition to that system to achieve behaviours that cannot normally be achieved.