Version: 2017.4
public int GetParticles (Particle[] particles);


particlesOutput particle buffer, containing the current particle state.


int Input パーティクル配列に書き込まれたパーティクルの数(現在生存しているパーティクルの数)。


Gets the particles of this particle system.

この方法は、いったん Input「パーティクル」配列が前もって割り当てられている限り、割り当ては自由です(以下の例を参照)。GetParticles() を呼び出すとき、パーティクルシステム内にどのくらいのパーティクルが現在生存しているかによってパーティクル配列のわずかな部分のみが使用される可能性があることに注意してください。

See Also: Particle, SetParticles.

using UnityEngine;

[RequireComponent(typeof(ParticleSystem))] public class ParticleFlow : MonoBehaviour { ParticleSystem m_System; ParticleSystem.Particle[] m_Particles; public float m_Drift = 0.01f;

private void LateUpdate() { InitializeIfNeeded();

// GetParticles is allocation free because we reuse the m_Particles buffer between updates int numParticlesAlive = m_System.GetParticles(m_Particles);

// Change only the particles that are alive for (int i = 0; i < numParticlesAlive; i++) { m_Particles[i].velocity += Vector3.up * m_Drift; }

// Apply the particle changes to the particle system m_System.SetParticles(m_Particles, numParticlesAlive); }

void InitializeIfNeeded() { if (m_System == null) m_System = GetComponent<ParticleSystem>();

if (m_Particles == null || m_Particles.Length < m_System.main.maxParticles) m_Particles = new ParticleSystem.Particle[m_System.main.maxParticles]; } }