我正在尝试将粒子系统功能更改为池,而不是每次都实例化 . 我想重用粒子 . 怎么可能?我不知道如何开始,虽然我看了团结教程,但不知怎的,它仍然不清楚 . 也许是因为我在其他类中调用粒子系统函数,这让我感到困惑 .
public ParticleSystem[] Myeffects;
public void Particle(int particleNum, Vector3 Pos)
{
if (Myeffects != null && Myeffects[particleNumber] != null )
{
if (Myeffects[particleNumber].isPlaying)
Myeffects[particleNumber].Stop();
ParticleSystem temp = Instantiate(Myeffects[particleNum], particlePos, new Quaternion()) as ParticleSystem;
temp.Play();
}
}
}
1 回答
首先,选择粒子系统预制件/ TNT,然后确保未选中 Play On Awake . 下面的池脚本是专门用来实现它的棘手方法 . 它将创建一个
ParticleSystem
数组,然后重新使用它们 . 请注意ParticlePool
从MonoBehaviour
继承 not ,因此请确保直接复制它 .然后,您的
ParticleHolder
脚本应使用以下代码进行更新 . 而已 . 没有更多的实例化 .