Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Объявление

public int GetParticles(out Particle[] particles);

public int GetParticles(out Particle[] particles, int size);

public int GetParticles(out Particle[] particles, int size, int offset);

public int GetParticles(out NativeArray particles);

public int GetParticles(out NativeArray particles, int size);

public int GetParticles(out NativeArray particles, int size, int offset);

Параметры

particles Выходной буфер частиц, содержащий текущее состояние частиц.
size Количество элементов, которые считываются из системы частиц.
offset Смещение в активном списке частиц, откуда копировать частицы.

Возвращает

int Количество частиц, записанных во входной массив частиц (количество частиц, живущих в настоящее время).

Описание

Получает частицы этой системы частиц.

Этот метод не требует выделения памяти, если входной массив "particles" предварительно выделяется один раз (см. пример ниже). Метод получает только те частицы, которые в данный момент находятся в системе частиц, когда он вызывается, поэтому он может получить только небольшую часть массива частиц.

Смотрите так же: 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 не требует выделения памяти, потому что мы повторно используем буфер m_Particles между обновлениями int numParticlesAlive = m_System.GetParticles(m_Particles); // Меняем только живые частицы for (int i = 0; i < numParticlesAlive; i++) { m_Particles[i].velocity += Vector3.up * m_Drift; } // Применить изменения частиц к ParticleСистеме 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]; } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3