是否知道Unity是否可以计算粒子系统发射了多少粒子?所以我可以检查是否有排放物,例如:
public ParticleSystem mySystem;
private int currentParticleCount;
private int lastParticleCount;
void Start () {
lastParticleCount = mySystem.getEmissionCount();
}
void Update () {
currentParticleCount = mySystem.getEmissionCount();
if(currentParticleCount>lastParticleCount) {
DoStuff();
}
lastParticleCount = currentParticleCount;
}
答案 0 :(得分:2)
您可以使用ParticleSystem.particleCount
返回当前的粒子数量。如果那不能为您提供适当数量的粒子,请使用ParticleSystem.GetParticles
函数,因为该函数仅返回当前数量的 alive 粒子。下面是两个示例:
private ParticleSystem ps;
// Use this for initialization
void Start()
{
ps = GetComponent<ParticleSystem>();
}
// Update is called once per frame
void Update()
{
Debug.Log("Particles Count: " + ps.particleCount);
Debug.Log("Particles Alive Count: " + GetAliveParticles());
}
int GetAliveParticles()
{
ParticleSystem.Particle[] particles = new ParticleSystem.Particle[ps.particleCount];
return ps.GetParticles(particles);
}
答案 1 :(得分:0)
您要的确切功能不是构建功能,而是:
您可以知道系统当前显示的粒子,因此可以创建一个可累计数字的计数器,或者,如果您知道“显示时间”,就可以进行数学计算。
了解当前粒子:
ParticleSystem.particleCount
https://docs.unity3d.com/ScriptReference/ParticleSystem-particleCount.html