Blog Alphorm Logo de blog informatique spécialisé en technologie et solutions IT
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Créer un Tir de Projectile dans Unity
Agrandisseur de policeAa
Blog AlphormBlog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Search
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Suivez-nous
© Alphorm 2024 - Tous droits réservés
Développement3D et Animation

Créer un Tir de Projectile dans Unity

L'Équipe Alphorm Par L'Équipe Alphorm 16 novembre 2024
Partager
Partager

Le tir de projectiles est une mécanique essentielle pour rendre les jeux interactifs et captivants.

Sans une implémentation correcte, les projectiles peuvent sembler irréalistes, affectant l’immersion du joueur.

Cet article explore comment coder efficacement le tir de projectiles dans Unity, en s’assurant d’une animation fluide et d’interactions réalistes.

Table de matière
Préparation tir de projectiles UnityImplémentation mécanique de tir UnityFAQConclusion

Formation Unity : Maitriser l'Animation des Personnages et le Level Design en 2D

Devenez expert en animation 2D et design de niveaux avec Unity.

Découvrir cette formation

Dans cette section, nous allons voir comment coder le tir de notre personnage dans Unity. Le tir d’un projectile ajoute une dynamique supplémentaire à votre jeu, rendant l’interaction plus captivante. Nous allons commencer par préparer l’animation du projectile (ou bullet), puis intégrer un code pour gérer la mécanique du tir. L’objectif est de permettre à notre personnage de tirer un projectile lorsqu’une touche est pressée.

Écran de codage Unity pour tir de projectile 2D

Préparation tir de projectiles Unity

Pour commencer, nous avons à disposition un sprite destiné à représenter le projectile (Confère ressource). Comme pour le personnage, nous allons le transformer en spritesheet pour pouvoir animer le projectile.

  • Importer le sprite du projectile :Dans le dossier des sprites, sélectionnez le sprite destiné à l’animation du projectile et configurez-le en spritesheet.
  • Créer le bullet :Sélectionnez un sprite dans le lot et faites-le glisser sur la scène. Renommez l’objet Bullet. Cet objet représentera le projectile du personnage.
  • Ajoutez un Circle Collider 2D pour gérer la collision du bullet avec d’autres objets.
  • Ajoutez un Rigidbody2D pour permettre au bullet d’interagir avec la physique du jeu.
  • Freezer la position Y :Dans les paramètres du Rigidbody2D, activez l’option « Freeze Position Y ». Cela garantit que le projectile ne bouge que sur l’axe X et ne tombe pas sous l’effet de la gravité.

Avec les sprites obtenus du bullet spritesheet, créez une nouvelle animation nommée Bullet . Définissez le sample rate à 10 pour une animation fluide. Cela crée automatiquement un Animator sur l’objet Bullet, que nous pourrons utiliser pour gérer l’animation. Sur l’objet Bullet, ajoutez un Trail Renderer pour laisser une traînée derrière le projectile. Configurez les paramètres :

  • Time :0.1 pour une traînée courte.
  • Min Vertex Distance :0.05 pour une traînée fluide.
  • Color :Utilisez une couleur avec un effet de fondu pour que la traînée disparaisse progressivement.
Robot tirant un projectile dans Unity

Une fois ces étapes réalisées, vous devriez avoir un projectile qui se déplace de manière fluide avec une traînée visuelle. Vous pouvez ajuster les paramètres pour obtenir un effet satisfaisant en fonction de l’esthétique de votre jeu.

Lancez le mode Play pour observer l’effet de la traînée sur le projectile et son interaction avec le décor. Si vous constatez que le bullet interagit avec le sol de manière incorrecte, assurez-vous que les composants Rigidbody2D et Collider sont bien configurés. Le Freeze Position Y devrait garantir que le bullet reste horizontal.

Implémentation mécanique de tir Unity

Voici le code qui gère le tir du personnage :

				
					
usingUnityEngine;
publicclassRobotControllerA : MonoBehaviour {
  /***/
  privateboolisGrounded;
  // Pour déterminer la direction du tir (gauche ou droite)
  privateboolisLeft = false;
  [SerializeField] LayerMask layerMask;
  // Référence au prefab du projectile (bullet)
  [SerializeField] GameObject bulletPrefab;
  [SerializeField] floatfireRate = 0.1f; // Temps entre chaque tir
  privatefloatnextFire;                  // Gère le temps du prochain tir
  voidUpdate() {
    /***/
    // Si la touche est pressée
    boolisShooting = Input.GetKey(KeyCode.LeftControl);
    if (isShooting &&
        isGrounded) // Le tir ne se fait que si le personnage est au sol
    {
      // Si le délai entre les tirs est respecté
      if (nextFire < Time.time) {
        // Définit le prochain tir possible
        nextFire = fireRate + Time.time;
        // Définit la direction du tir en fonction de l'orientation du
        // personnage
        Vector2 dirBullet = isLeft ? Vector2.left : Vector2.right;
        // Instancie le bullet à la position du personnage
        GameObject go =
            Instantiate(bulletPrefab, transform.position, Quaternion.identity);
        // Applique une force pour lancer le projectile
        go.GetComponent<Rigidbody2D>().AddForce(dirBullet * 900);
        Destroy(go, 3f); // Détruit le projectile après 3 secondes
      }
    }
  }
}

				
			

Gestion du tir et instanciation des projectiles

Ce code gère la mécanique de tir du personnage. Lorsque le joueur appuie sur la touche LeftControl, le personnage tire un projectile dans la direction où il regarde (gauche ou droite). Le tir est régulé par une variable fireRate pour éviter que le joueur ne tire trop rapidement. Le projectile est instancié à la position du personnage et lancé avec une force prédéfinie, avant d’être détruit automatiquement après un délai.

Vous observerez peut-être que les projectiles entrent en collision avec le personnage. Pour éviter cela, il faut associer un Layer Bullet au prefab bullet et désactiver la collision entre le layer Player (le robot) et Bullet.

Personnage Unity tirant des projectiles

Allez dans Edit > Project Settings > Physics 2D . Dans la Collision Matrix , désactivez la case de collision entre Player et Bullet. En mode Play, vous devriez maintenant observer que le personnage tire des projectiles sans collision avec lui-même, et que les projectiles se déplacent avec une belle traînée visuelle.

Maintenant que la mécanique de tir est en place, nous allons nous concentrer sur l’animation du personnage lorsqu’il tire. Cela inclura une animation de tir qui se déclenche dès que le joueur appuie sur la touche de tir.

Formez-vous gratuitement avec Alphorm !

Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.

Démarrer gratuitement
illustration processus de paiement en ligne avec étapes claires et convivialité

FAQ

Comment coder le tir d'un projectile dans Unity?
Pour coder le tir d’un projectile dans Unity, commencez par préparer le sprite du projectile en le configurant en spritesheet. Ensuite, créez un objet Bullet dans la scène et ajoutez les composants nécessaires comme Circle Collider 2D et Rigidbody2D. Le script de tir doit gérer l’instanciation du projectile et appliquer une force pour le lancer. Assurez-vous d’utiliser des couches pour éviter les collisions indésirables entre le personnage et les projectiles.
Comment animer un projectile dans Unity?
Pour animer un projectile dans Unity, transformez votre sprite en spritesheet, puis créez une animation en utilisant les sprites. Assignez cette animation à un Animator sur l’objet Bullet. Ajoutez un Trail Renderer pour une traînée visuelle, en configurant les paramètres comme le temps et la couleur pour obtenir l’effet souhaité. Cela donnera une impression de mouvement fluide et dynamique à votre projectile.
Quelle est l'importance de la physique dans le tir de projectiles?
La physique est cruciale dans le tir de projectiles pour assurer des interactions réalistes dans le jeu. Utiliser des composants comme Rigidbody2D permet au projectile de se comporter correctement sous l’effet des forces appliquées, tandis que Circle Collider 2D gère les collisions. En réglant ces composants, vous pouvez contrôler le mouvement du projectile et éviter des interactions indésirables.
Comment éviter les collisions entre le personnage et ses projectiles?
Pour éviter les collisions entre le personnage et ses projectiles dans Unity, vous pouvez utiliser la Collision Matrix dans les paramètres de Physics 2D. Associez un Layer spécifique au projectile et désactivez la collision entre ce Layer et celui du personnage. Cela garantit que les projectiles ne rebondiront pas sur le personnage tout en interagissant correctement avec d’autres objets de la scène.
Comment réguler la cadence de tir dans Unity?
La cadence de tir dans Unity peut être régulée à l’aide d’une variable de temps, comme fireRate, qui détermine l’intervalle entre chaque tir. En vérifiant si le temps actuel est supérieur à la prochaine fenêtre de tir possible, vous pouvez contrôler la fréquence des tirs. Cela empêche le joueur de tirer en continu, ajoutant un élément de stratégie au gameplay.

Conclusion

En conclusion, maîtriser la mécanique de tir de projectiles dans Unity peut transformer l’expérience de jeu. Quelle autre fonctionnalité aimeriez-vous explorer pour dynamiser votre projet Unity?

ÉTIQUETÉ : Unity
Facebook
Twitter
LinkedIn
Email
WhatsApp
Par L'Équipe Alphorm
Démocratiser la Connaissance Informatique pour Tous !
Suivre :
L'Équipe Alphorm, c'est la démocratisation de la connaissance informatique. Passionnés et dévoués, nous sommes là pour vous guider vers le succès en rendant la technologie accessible à tous. Rejoignez notre aventure d'apprentissage et de partage. Avec nous, le savoir IT devient une ressource inspirante et ouverte à tous dans un monde numérique en constante évolution.

Derniers Articles

  • Techniques pour gérer les fichiers texte en C#
  • Créer et lire un fichier CSV avec C#
  • JSON : Comprendre et Utiliser Efficacement
  • Créer une Base SQLite dans C#
  • Lecture des données SQLite simplifiée
Laisser un commentaire Laisser un commentaire

Laisser un commentaire Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

Blog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Créer un Tir de Projectile dans Unity

© Alphorm - Tous droits réservés