すべてのパーティクルのコピーし、現在のパーティクルとなるすべてのパーティクルを割り当てて返します
パーティクルの配列を変更した後、変更を確認するため particleEmitter に戻ってそれを割り当てる必要があることに注意してください。 パーティクルを割り当てるとき、ゼロ以下のエネルギーによるパーティクルは消滅します。したがって、完全な新規のパーティクル配列を作成するとき、 明示的にすべてのパーティクルのエネルギーを設定するために必要です。
var emitter: ParticleEmitter;
function Start() { emitter = GetComponent.<ParticleEmitter>(); }
function LateUpdate () { // extract the particles var particles = emitter.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 emitter.particles = particles; }
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { public ParticleEmitter emitter; void Start() { emitter = GetComponent<ParticleEmitter>(); } void LateUpdate() { Particle[] particles = emitter.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++; } emitter.particles = particles; } }