Teknologian jakaminen

[Unity2D 2022: Particle System] Lisää osumahiukkasten erikoistehosteita

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Luo hiukkasten erikoistehosteiden peliobjekteja

2. Muokkaa hiukkasjärjestelmän ominaisuuksia

1. Perusominaisuudet

(1) Muuta emittoituneiden hiukkasten kesto (Duration) 1 sekuntiin

(2) Poista valinta kohdasta Silmukka

(3) Muokkaa hiukkasten olemassaoloaikaa (alkuaika) satunnaiseksi arvoksi välillä 0,1 - 0,2

(4) Muuta hiukkasten alkunopeus (aloitusnopeus) nollaan

(5) Muuta hiukkasten alkukoko (aloituskoko) satunnaiseksi arvoksi välillä 0,7 - 1

(6) Muuta hiukkasten alkukiertokulma (Start Rotation) satunnaiseksi arvoksi välillä 0 - 360

2. Päästöt

(1) Aseta päästöjen hiukkasnopeus (nopeus ajan myötä) arvoon 0 (eli älä päästä hiukkasia)

(2) Lisää sarja, aika on 0, määrä on 5

3. Lähettimen muoto (muoto)

(1) Aseta muoto ympyräksi

(2) Aseta kiertokulma (Rotation) arvoon 900 x-akselin suunnassa

(3) Aseta säteeksi (Radius) 0,12

(4) Aseta tilaksi (Mode) Burst Spread (räjähdyslevitys)

4. Hiukkasten väri (väri käyttöiän aikana)

(1) Aseta läpinäkyvyydeksi 255-0 (eli yhä läpinäkyvämpi)

5. Hiukkaskoko (koko käyttöiän aikana)

(1) Aseta hiukkaskooksi 0,6-1

6. Hiukkastekstuurianimaatio (tekstuuriarkin animaatio)

(1) Lisää hiukkassprite-kuvia

3. Luo hitti erikoistehosteet esivalmistettu

4. Erikoistehosteita soitetaan, kun luoti osuu viholliseen.

1. Muokkaa luettelomerkkiä:

(1) Luo hittiä erikoistehosteita

  1. public class Bullet : MonoBehaviour
  2. {
  3. // 创建命中特效预制体
  4. public GameObject hitEffectParticlePrefab;
  5. }

(2) Kirjoita iteraattorin käyttöliittymä uudelleen ja poista osumahiukkastehosteet 1 sekunnin viiveen jälkeen.

  1. public class Bullet : MonoBehaviour
  2. {
  3. // 创建命中特效预制体
  4. public GameObject hitEffectParticlePrefab;
  5. // 在1s后删除粒子特效
  6. private async Task deleteEffectParticle(GameObject EffectParticle, float delay)
  7. {
  8. // 等待1s
  9. await Task.Delay(1000);
  10. // 删除粒子特效
  11. Destroy(EffectParticle);
  12. }
  13. }

(3) Kun osut viholliseen, luo osumahiukkasen erikoistehoste luodin kohtaan ja poista se 1 sekunnin kuluttua.

  1. public class Bullet : MonoBehaviour
  2. {
  3. // 创建命中特效预制体
  4. public GameObject hitEffectParticlePrefab;
  5. // 击中敌人
  6. private void OnCollisionEnter2D(Collision2D collision)
  7. {
  8. Enemy enemy = collision.gameObject.GetComponent<Enemy>();
  9. if(enemy != null) {
  10. enemy.changeHealthPoint(-25);
  11. GameObject hitEffectParticle = Instantiate(hitEffectParticlePrefab, transform.position, Quaternion.identity);
  12. deleteHitEffectParticle(hitEffectParticle, 1);
  13. }
  14. Destroy(gameObject);
  15. }
  16. // 在1s后删除粒子特效
  17. public static async Task deleteEffectParticle(GameObject EffectParticle, float delay)
  18. {
  19. // 等待1s
  20. await Task.Delay(1000);
  21. // 删除粒子特效
  22. Destroy(EffectParticle);
  23. }
  24. }

2. Lisää osumahiukkasten erikoistehosteita luodin valmistukseen

3. Lopullinen vaikutus on seuraavanlainen:

Tämän luvun loppu. Kiitos lukemisesta!