public int GetParticles (Particle[] particles);

Parámetros

particlesOutput particle buffer, containing the current particle state.

Valor de retorno

int La cantidad de partículas escritas al arreglo de partícula de entrada (la cantidad de partículas actualmente vivas).

Descripción

Gets the particles of this particle system.

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.main.maxParticles) m_Particles = new ParticleSystem.Particle[m_System.main.maxParticles]; } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961