void Start()
{
particleSystem = gameObject.GetComponent<ParticleSystem>();
const int maxParticle = 1000;
particleSystem.maxParticles = maxParticle;
particles = new ParticleSystem.Particle[maxParticle];
particleData = new ParticleData[maxParticle];
particleSystem.Emit(maxParticle);
particleSystem.GetParticles(particles);
for (int i = 0; i < maxParticle; i++)
{
particles[i].position = Vector3.zero;
particles[i].velocity = Vector3.zero;
particles[i].size = 0.1f;
float rotateX = Random.value * 360;
float rotateY = Random.value * 180;
float rotateZ = Random.value * 360;
Quaternion q = new Quaternion();
q.eulerAngles = new Vector3(rotateX, rotateY, rotateZ);
particleData[i].direction = q * Vector3.forward;
particleData[i].speed = 1;
particleData[i].cos = i / ((float)maxParticle / 10);
}
particleSystem.SetParticles(particles, maxParticle);
}