반응형
public class particleMove : MonoBehaviour {
	ParticleSystem ps;
	ParticleSystem.Particle[] m_Particles;
	public Transform target;
	public float speed = 5f;
	private int numParticlesAlive;
    private float step = 0;


    void Start () {
		ps = GetComponent<ParticleSystem>();
		if (!GetComponent<Transform>()){
			GetComponent<Transform>();
		}
	}



    public void InitAttractorMove( Transform _target)
    {
        target = _target;

        step = 0;

        distance = 0;
    }
    
    
    
    
	void Update () 
    {
        if(m_Particles == null)
		    m_Particles = new ParticleSystem.Particle[ps.main.maxParticles];

		numParticlesAlive = ps.GetParticles(m_Particles);
	    step = speed * Time.deltaTime;
		for (int i = 0; i < numParticlesAlive; i++)
        {
			m_Particles[i].position = Vector3.MoveTowards(m_Particles[i].position, target.position, step);

                  
		}

     
        ps.SetParticles(m_Particles, numParticlesAlive);

        
	}
}

 

반응형

+ Recent posts