我正在尝试在游戏中创建出血效果,我想使粒子消失的时间不是一段时间,而是在粒子到达低于粒子发射器所有者的位置之后消失。
我尝试附加尝试执行此操作的脚本,但是我似乎无法使粒子消失。
public class Blood : MonoBehaviour
{
[SerializeField]
private ParticleSystem ps;
[SerializeField]
private Transform owner;
void Update()
{
ParticleSystem.Particle[] particles = new ParticleSystem.Particle[ps.particleCount];
int num = ps.GetParticles(particles);
for (int i = 0; i < num; i++)
{
if (particles[i].position.y < owner.position.y)
{
particles[i].remainingLifetime = 0f;
}
}
}
}
答案 0 :(得分:0)
有点晚了,但是ParticleSystem.Particle是一个值类型(结构),因此您只在操作本地副本。致电
ps.SetParticles(particles)
最后将它们复制回粒子系统。