Описание
OnParticleTrigger вызывается, когда какие-либо частицы в системе частиц соответствуют условиям в модуле триггера.
Это можно использовать для уничтожения или изменения частиц, находящихся внутри или вне объема столкновения.
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class TriggerScript : MonoBehaviour
{
void OnParticleTrigger()
{
ParticleSystem ps = GetComponent<ParticleSystem>();
// частицы
List<ParticleSystem.Particle> enter = new List<ParticleSystem.Particle>();
List<ParticleSystem.Particle> exit = new List<ParticleSystem.Particle>();
// получать
int numEnter = ps.GetTriggerParticles(ParticleSystemTriggerEventType.Enter, enter);
int numExit = ps.GetTriggerParticles(ParticleSystemTriggerEventType.Exit, exit);
// итерация
for (int i = 0; i < numEnter; i++)
{
ParticleSystem.Particle p = enter[i];
p.startColor = new Color32(255, 0, 0, 255);
enter[i] = p;
}
for (int i = 0; i < numExit; i++)
{
ParticleSystem.Particle p = exit[i];
p.startColor = new Color32(0, 255, 0, 255);
exit[i] = p;
}
// установка
ps.SetTriggerParticles(ParticleSystemTriggerEventType.Enter, enter);
ps.SetTriggerParticles(ParticleSystemTriggerEventType.Exit, exit);
}
}
Для получения подробной информации обо всех коллизиях, вызванных ParticleSystem, необходимо использовать ParticlePhysicsExtensions.GetTriggerParticles. для получения массива Particle.