using UnityEngine;
using System.Collections;




public class ParticleBufferAccess_Curl : MonoBehaviour {
	

	
public Vector3 Amount = new Vector3(0.6f,0.6f,1.0f);


const int bufferSize =  1000;
	
private ParticleSystem.Particle[] particles = new ParticleSystem.Particle[bufferSize];


private float[] dx =new float[bufferSize];
private float[] dy =new float[bufferSize];
private float[] dz =new float[bufferSize];
	
private Perlin noise;
	
public float  scale = 0.1f;
public float  speed = 0.05f;
	

	
void  Start ()
{
	
		noise = new Perlin ();
		
		
}	
	
	
	
void LateUpdate() {

int length = particleSystem.GetParticles(particles);
int i = 0;
		

while (i < length) {


	float  scalex = Time.time  * speed + 0.1365143f;
	float  scaley = Time.time  * speed +   1.21688f;	
	float  scalez = Time.time  * speed +    2.5564f;	
		
    dx[i] = noise.Noise(particles[i].position.x*scale, particles[i].position.y*scale, particles[i].position.z*scalex);
    dy[i] = noise.Noise(particles[i].position.x*scale, particles[i].position.y*scale, particles[i].position.z*scaley);
    dz[i] = noise.Noise(particles[i].position.x*scale, particles[i].position.y*scale, particles[i].position.z*scalez);

	particles[i].position += new Vector3(dx[i]*Amount.x, dy[i]*Amount.y, dz[i]*Amount.z) ;	

			
	i++;	
		
}
		
particleSystem.SetParticles(particles, length); 

}		
}