particles | Buffer de partícula que es utilizado para escribir estados de partícula. El valor de retorno es la cantidad de partículas escritas a este arreglo. |
int La cantidad de partículas escritas al arreglo de partícula de entrada (la cantidad de partículas actualmente vivas).
Obtiene las partículas de este sistema de partículas.
Este método está libre de asignación siempre y cuando el arreglo de "partículas" de entrada se preasigne una vez (vea el ejemplo a continuación). Tenga en cuenta que sólo una pequeña parte del arreglo de partículas podría ser utilizado ya que esto depende de cuántas partículas están actualmente vivas en el sistema de partículas cuando se llama 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.maxParticles) m_Particles = new ParticleSystem.Particle[m_System.maxParticles]; } }