public ParticleSystem.SubEmittersModule subEmitters;
Описание
Скриптовый интерфейс для SubEmittersModule системы частиц.
Запуск эмиссии дочерних частиц связан с такими событиями, как рождение, смерть и столкновение частиц в родительской системе.
Модули системы частиц не нужно переназначать обратно в систему; это интерфейсы, а не независимые объекты.
using UnityEngine;
using System.Collections;
// Простой пример, показывающий доступ.
public class ExampleClass : MonoBehaviour {
public ParticleSystem mySubEmitter;
void Start() {
ParticleSystem ps = GetComponent<ParticleSystem>();
var sub = ps.subEmitters;
sub.enabled = true;
sub.AddSubEmitter(mySubEmitter, ParticleSystemSubEmitterType.Death, ParticleSystemSubEmitterProperties.InheritNothing);
}
}
using UnityEngine;
// Пример, показывающий, как создать 2 Системы частиц; один в качестве субэмиттера.
public class SubEmitterDeathExample : MonoBehaviour
{
void Start ()
{
// Простой материал частиц без текстуры.
Material particleMaterial = new Material(Shader.Find("Particles/Standard Unlit"));
// Create a green ParticleSystem.
var rootSystemGO = new GameObject("ParticleSystem");
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 set up bursts.
var subSystemGO = new GameObject("ParticleSystem");
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);
}
}