全てのパーティクルのコピーし、現在のパーティクルとなる全てのパーティクルを割り当てて返します
Note that after modifying the particles array you must assign it back to the particleEmitter to see the change. Particles with energy of zero or less will be killed when assigning the particles. Thus when creating a complete new particle array, you need to set the energy of all particles explicitly.
// Attach this script to an existing particle emitter. function LateUpdate () { // extract the particles var particles = particleEmitter.particles; for (var i = 0; i < particles.Length; i++) { // Move the particles up and down on a sinus curve var yPosition = Mathf.Sin (Time.time) * Time.deltaTime; particles[i].position += Vector3 (0, yPosition, 0); // make the particles red particles[i].color = Color.red; // modify the size on a sinus curve particles[i].size = Mathf.Sin (Time.time) * 0.2; } // copy them back to the particle emitter particleEmitter.particles = particles; }
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { void LateUpdate() { Particle[] particles = particleEmitter.particles; int i = 0; while (i < particles.Length) { float yPosition = Mathf.Sin(Time.time) * Time.deltaTime; particles[i].position += new Vector3(0, yPosition, 0); particles[i].color = Color.red; particles[i].size = Mathf.Sin(Time.time) * 0.2F; i++; } particleEmitter.particles = particles; } }
import UnityEngine import System.Collections public class ExampleClass(MonoBehaviour): def LateUpdate() as void: particles as (Particle) = particleEmitter.particles i as int = 0 while i < particles.Length: yPosition as float = (Mathf.Sin(Time.time) * Time.deltaTime) particles[i].position += Vector3(0, yPosition, 0) particles[i].color = Color.red particles[i].size = (Mathf.Sin(Time.time) * 0.2F) i++ particleEmitter.particles = particles