Partage de technologie

[Unity2D 2022 : Système de particules] Ajouter des effets spéciaux de particules touchées

2024-07-12

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

1. Créez des objets de jeu à effets spéciaux de particules

2. Modifier les propriétés du système de particules

1. Attributs de base

(1) Modifier la durée des particules émises (Durée) à 1s

(2) Décochez Boucle

(3) Modifier le temps d'existence des particules (Start Lifetime) à une valeur aléatoire comprise entre 0,1 et 0,2

(4) Modifier la vitesse initiale des particules (Start Speed) à 0

(5) Modifier la taille initiale des particules (Start Size) à une valeur aléatoire comprise entre 0,7 et 1

(6) Modifier l'angle de rotation initial de la particule (Start Rotation) à une valeur aléatoire comprise entre 0 et 360

2. Émission

(1) Réglez la vitesse des particules émises (taux dans le temps) sur 0 (c'est-à-dire ne pas émettre de particules)

(2) Ajouter une rafale (Burst), le temps est 0, le compte est 5

3. Forme de l'émetteur (forme)

(1) Définir la forme sur Cercle

(2) Réglez l'angle de rotation (Rotation) sur 900 dans la direction de l'axe x.

(3) Réglez le rayon sur (Rayon) 0,12

(4) Réglez le mode (Mode) sur Burst Spread (propagation d'explosion)

4. Couleur des particules (couleur sur la durée de vie)

(1) Réglez la transparence sur 255-0 (c'est-à-dire de plus en plus transparent)

5. Taille des particules (taille sur la durée de vie)

(1) Réglez la taille des particules sur 0,6-1

6. Animation de texture de particules (Animation de feuille de texture)

(1) Ajouter des images de sprites de particules

3. Créez un préfabriqué d'effets spéciaux à succès

4. Des effets spéciaux sont joués lorsque la balle touche l'ennemi.

1. Modifiez le script à puce :

(1) Créer un préfabriqué d'effets spéciaux à succès

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

(2) Réécrivez l'interface de l'itérateur et supprimez les effets des particules touchées après un délai de 1 s.

  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) Lorsque vous frappez un ennemi, créez un effet spécial de particule touchée à la position de la balle, qui sera supprimé après 1 seconde.

  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. Ajoutez des effets spéciaux de particules touchées au préfabriqué de balle

3. L'effet final est le suivant :

Fin de ce chapitre. Merci d'avoir lu!