| subEmitter | The sub-emitter to be added. |
| type | The event that creates new particles. |
| properties | The properties of the new particles. |
Add a new sub-emitter.
#pragma strict
// Add a birth sub-emitter
function Start() {
// A simple particle material with no texture.
var particleMaterial: Material = new Material(Shader.Find("Particles/Alpha Blended Premultiply"));
// Create a green particle system.
var rootSystemGO: var = new GameObject("Particle System");
rootSystemGO.transform.Rotate(-90, 0, 0);
// Rotate so the system emits upwards.
var rootParticleSystem: var = rootSystemGO.AddComponent.<ParticleSystem>();
rootSystemGO.GetComponent.<ParticleSystemRenderer>().material = particleMaterial;
var mainModule: var = rootParticleSystem.main;
mainModule.startColor = Color.green;
mainModule.startSize = 0.5f;
// Spread the particles out more so the sub-emitter effect is more obvious.
var shapeModule: var = rootParticleSystem.shape;
shapeModule.radius = 100;
// Create our sub-emitter and set up bursts.
var subSystemGO: var = new GameObject("Particle System");
var subParticleSystem: var = subSystemGO.AddComponent.<ParticleSystem>();
subSystemGO.GetComponent.<ParticleSystemRenderer>().material = particleMaterial;
var subMainModule: var = subParticleSystem.main;
subMainModule.startColor = Color.red;
subMainModule.startSize = 0.25f;
subMainModule.startLifetime = 0.5f;
// very short life particles.
var emissionModule: var = subParticleSystem.emission;
emissionModule.rate = 2;
// 1 particle will emit every 0.5 sec.
emissionModule.SetBursts([new ParticleSystem.Burst(1.0f, 10), new ParticleSystem.Burst(3.0f, 10)]);
// Set up the sub particles so they fade over time.
var colorModule: var = subParticleSystem.colorOverLifetime;
colorModule.enabled = true;
var gradient: var = new Gradient();
gradient.SetKeys([new GradientColorKey(Color.white, 0.0f), new GradientColorKey(Color.white, 1.0f)], [new GradientAlphaKey(1.0f, 0.0f), new GradientAlphaKey(0.0f, 1.0f)]);
// Alpha fades
colorModule.color = gradient;
// Setup the sub-emitter.
subSystemGO.transform.SetParent(rootSystemGO.transform);
var subEmittersModule: var = rootParticleSystem.subEmitters;
subEmittersModule.enabled = true;
subEmittersModule.AddSubEmitter(subParticleSystem, ParticleSystemSubEmitterType.Birth, ParticleSystemSubEmitterProperties.InheritNothing);
}
using UnityEngine;
// Add a birth sub-emitter public class ExampleClass : MonoBehaviour { void Start() { // A simple particle material with no texture. Material particleMaterial = new Material(Shader.Find("Particles/Alpha Blended Premultiply"));
// Create a green particle system. var rootSystemGO = new GameObject("Particle System"); rootSystemGO.transform.Rotate(-90, 0, 0); // Rotate so the system emits upwards. var rootParticleSystem = rootSystemGO.AddComponent<ParticleSystem>(); rootSystemGO.GetComponent<ParticleSystemRenderer>().material = particleMaterial; var mainModule = rootParticleSystem.main; mainModule.startColor = Color.green; mainModule.startSize = 0.5f;
// Spread the particles out more so the sub-emitter effect is more obvious. var shapeModule = rootParticleSystem.shape; shapeModule.radius = 100;
// Create our sub-emitter and set up bursts. var subSystemGO = new GameObject("Particle System"); var subParticleSystem = subSystemGO.AddComponent<ParticleSystem>(); subSystemGO.GetComponent<ParticleSystemRenderer>().material = particleMaterial; var subMainModule = subParticleSystem.main; subMainModule.startColor = Color.red; subMainModule.startSize = 0.25f; subMainModule.startLifetime = 0.5f; // very short life particles. var emissionModule = subParticleSystem.emission; emissionModule.rate = 2; // 1 particle will emit every 0.5 sec. emissionModule.SetBursts(new ParticleSystem.Burst[] // A burst will emit at 1 and 3 secs. { new ParticleSystem.Burst(1.0f, 10), new ParticleSystem.Burst(3.0f, 10) });
// Set up the sub particles so they fade over time. var colorModule = subParticleSystem.colorOverLifetime; colorModule.enabled = true; var gradient = new Gradient(); gradient.SetKeys( new GradientColorKey[] { new GradientColorKey(Color.white, 0.0f), new GradientColorKey(Color.white, 1.0f) }, // Color remains untouched. new GradientAlphaKey[] { new GradientAlphaKey(1.0f, 0.0f), new GradientAlphaKey(0.0f, 1.0f) }); // Alpha fades colorModule.color = gradient;
// Setup the sub-emitter. subSystemGO.transform.SetParent(rootSystemGO.transform); var subEmittersModule = rootParticleSystem.subEmitters; subEmittersModule.enabled = true; subEmittersModule.AddSubEmitter(subParticleSystem, ParticleSystemSubEmitterType.Birth, ParticleSystemSubEmitterProperties.InheritNothing); } }
#pragma strict
// Add a collision sub-emitter
function Start() {
// For this example we will need something to collide with in the world.
var cube: var = GameObject.CreatePrimitive(PrimitiveType.Cube);
cube.transform.position = new Vector3(0, 10, 0);
// Position above the particle system.
cube.transform.localScale = new Vector3(10, 10, 10);
// A simple particle material with no texture.
var particleMaterial: Material = new Material(Shader.Find("Particles/Alpha Blended Premultiply"));
// Create a green particle system.
var rootSystemGO: var = new GameObject("Particle System");
rootSystemGO.transform.Rotate(-90, 0, 0);
// Rotate so the system emits upwards.
var rootParticleSystem: var = rootSystemGO.AddComponent.<ParticleSystem>();
rootSystemGO.GetComponent.<ParticleSystemRenderer>().material = particleMaterial;
var mainModule: var = rootParticleSystem.main;
mainModule.startColor = Color.green;
mainModule.startSize = 0.5f;
// Enable and setup the collisions module.
var collisionModule: var = rootParticleSystem.collision;
collisionModule.enabled = true;
collisionModule.type = ParticleSystemCollisionType.World;
// Create our sub-emitter and setup bursts.
var subSystemGO: var = new GameObject("Particle System");
var subParticleSystem: var = subSystemGO.AddComponent.<ParticleSystem>();
subSystemGO.GetComponent.<ParticleSystemRenderer>().material = particleMaterial;
var subMainModule: var = subParticleSystem.main;
subMainModule.startColor = Color.red;
subMainModule.startSize = 0.25f;
var emissionModule: var = subParticleSystem.emission;
emissionModule.SetBursts([new ParticleSystem.Burst(0.0f, 10)]);
// Set up the sub-emitter.
subSystemGO.transform.SetParent(rootSystemGO.transform);
var subEmittersModule: var = rootParticleSystem.subEmitters;
subEmittersModule.enabled = true;
subEmittersModule.AddSubEmitter(subParticleSystem, ParticleSystemSubEmitterType.Collision, ParticleSystemSubEmitterProperties.InheritNothing);
}
using UnityEngine;
// Add a collision sub-emitter public class ExampleClass : MonoBehaviour { void Start() { // For this example we will need something to collide with in the world. var cube = GameObject.CreatePrimitive(PrimitiveType.Cube); cube.transform.position = new Vector3(0, 10, 0); // Position above the particle system. cube.transform.localScale = new Vector3(10, 10, 10);
// A simple particle material with no texture. Material particleMaterial = new Material(Shader.Find("Particles/Alpha Blended Premultiply"));
// Create a green particle system. var rootSystemGO = new GameObject("Particle System"); rootSystemGO.transform.Rotate(-90, 0, 0); // Rotate so the system emits upwards. var rootParticleSystem = rootSystemGO.AddComponent<ParticleSystem>(); rootSystemGO.GetComponent<ParticleSystemRenderer>().material = particleMaterial; var mainModule = rootParticleSystem.main; mainModule.startColor = Color.green; mainModule.startSize = 0.5f;
// Enable and setup the collisions module. var collisionModule = rootParticleSystem.collision; collisionModule.enabled = true; collisionModule.type = ParticleSystemCollisionType.World;
// Create our sub-emitter and setup bursts. var subSystemGO = new GameObject("Particle System"); var subParticleSystem = subSystemGO.AddComponent<ParticleSystem>(); subSystemGO.GetComponent<ParticleSystemRenderer>().material = particleMaterial; var subMainModule = subParticleSystem.main; subMainModule.startColor = Color.red; subMainModule.startSize = 0.25f; var emissionModule = subParticleSystem.emission; emissionModule.SetBursts(new ParticleSystem.Burst[] { new ParticleSystem.Burst(0.0f, 10) }); // We will emit 10 particles upon collision.
// Set up the sub-emitter. subSystemGO.transform.SetParent(rootSystemGO.transform); var subEmittersModule = rootParticleSystem.subEmitters; subEmittersModule.enabled = true; subEmittersModule.AddSubEmitter(subParticleSystem, ParticleSystemSubEmitterType.Collision, ParticleSystemSubEmitterProperties.InheritNothing); } }
#pragma strict
// Add a death sub-emitter
function Start() {
// A simple particle material with no texture.
var particleMaterial: Material = new Material(Shader.Find("Particles/Alpha Blended Premultiply"));
// Create a green particle system.
var rootSystemGO: var = new GameObject("Particle System");
rootSystemGO.transform.Rotate(-90, 0, 0);
// Rotate so the system emits upwards.
var rootParticleSystem: var = rootSystemGO.AddComponent.<ParticleSystem>();
rootSystemGO.GetComponent.<ParticleSystemRenderer>().material = particleMaterial;
var mainModule: var = rootParticleSystem.main;
mainModule.startColor = Color.green;
mainModule.startSize = 0.5f;
// Create our sub-emitter and setup bursts.
var subSystemGO: var = new GameObject("Particle System");
var subParticleSystem: var = subSystemGO.AddComponent.<ParticleSystem>();
subSystemGO.GetComponent.<ParticleSystemRenderer>().material = particleMaterial;
var subMainModule: var = subParticleSystem.main;
subMainModule.startColor = Color.red;
subMainModule.startSize = 0.25f;
var emissionModule: var = subParticleSystem.emission;
emissionModule.SetBursts([new ParticleSystem.Burst(0.0f, 10)]);
// Set up the sub-emitter.
subSystemGO.transform.SetParent(rootSystemGO.transform);
var subEmittersModule: var = rootParticleSystem.subEmitters;
subEmittersModule.enabled = true;
subEmittersModule.AddSubEmitter(subParticleSystem, ParticleSystemSubEmitterType.Death, ParticleSystemSubEmitterProperties.InheritNothing);
}
using UnityEngine;
// Add a death sub-emitter public class ExampleClass : MonoBehaviour { void Start() { // A simple particle material with no texture. Material particleMaterial = new Material(Shader.Find("Particles/Alpha Blended Premultiply"));
// Create a green particle system. var rootSystemGO = new GameObject("Particle System"); rootSystemGO.transform.Rotate(-90, 0, 0); // Rotate so the system emits upwards. var rootParticleSystem = rootSystemGO.AddComponent<ParticleSystem>(); rootSystemGO.GetComponent<ParticleSystemRenderer>().material = particleMaterial; var mainModule = rootParticleSystem.main; mainModule.startColor = Color.green; mainModule.startSize = 0.5f;
// Create our sub-emitter and setup bursts. var subSystemGO = new GameObject("Particle System"); var subParticleSystem = subSystemGO.AddComponent<ParticleSystem>(); subSystemGO.GetComponent<ParticleSystemRenderer>().material = particleMaterial; var subMainModule = subParticleSystem.main; subMainModule.startColor = Color.red; subMainModule.startSize = 0.25f; var emissionModule = subParticleSystem.emission; emissionModule.SetBursts(new ParticleSystem.Burst[] { new ParticleSystem.Burst(0.0f, 10) }); // We will emit 10 particles upon death.
// Set up the sub-emitter. subSystemGO.transform.SetParent(rootSystemGO.transform); var subEmittersModule = rootParticleSystem.subEmitters; subEmittersModule.enabled = true; subEmittersModule.AddSubEmitter(subParticleSystem, ParticleSystemSubEmitterType.Death, ParticleSystemSubEmitterProperties.InheritNothing); } }