Za każdym razem, gdy próbuję utworzyć instancję układu cząstek w Jedności 3D, polecenie pozycjonuje cząstki, ale nie odtwarza / uruchamia animację.

Oto mój kod

GameObject impactGO = Instantiate(impactEffect, hit.point, Quaternion.LookRotation(hit.normal));
Destroy(impactGO, sleep_);

Unity Version-2021.1.1f1

1
Prathamesh Bhatkar 13 kwiecień 2021, 11:57

1 odpowiedź

Najlepsza odpowiedź

Pozycjonuje cząstki, ale nie odtwarza / uruchamiają animację

Jeśli system cząstek jest tworzony przez kod, który wydaje się robić. Istnieje wiele sposobów, aby rozpocząć, gdy zostanie utworzony.


graj na obuwieniu:

Następnie musisz upewnić się, że system cząstek ma Play On Awake ustawiony na { {X1}}. Ponieważ zapewni to system cząstek zacznie grać, gdy tylko utworzysz go na scenie.

Particle System Main module


wirusystem.Play Altenterive:

Alternatywnie możesz użyć ParticleSystem.Play funkcja uruchomienia systemu cząstek w kodzie po utworzeniu go.

ParticleSystem impactPS = Instantiate(impactEffect, hit.point, 
    Quaternion.LookRotation(hit.normal)) as ParticleSystem;
impactPS.Play();
Destroy(impactPS.gameObjkect, sleep_);

Uzyskiwanie czasu trwania systemu cząstek:

Dodatkowo, jeśli chcesz uzyskać czas trwania systemu cząstek, można użyć .main.duration. Aby upewnić się, że nie zniszczysz swojego {X1}}, zanim skończy się system cząstek.

float sleep_ = impactPS.main.duration;
1
MathewHD 13 kwiecień 2021, 09:17