全てのパーティクルのコピーし、現在のパーティクルとなる全てのパーティクルを割り当てて返します
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