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