Ce tutoriel vous guidera à travers les étapes de création d'un jeu de tir 3D dans Unity. Vous découvrirez deux techniques différentes pour la gestion des tirs : le lancer de rayon et le projectile physique.
Nous allons intégrer un système pour tirer sur des cibles, après avoir créé un simple First Person Controller sur Unity, permettant au joueur de se déplacer, regarder autour de lui avec la souris et sauter.
Le projet met en action un joueur en vue à la première personne, capable, grâce au clic gauche, de tirer. Les tirs impacteront l'ennemi et au bout de trois tirs, il disparaît. À chaque tir, un son est joué. Le laser produit un trait rouge et des particules en rencontrant un obstacle.
Généralement, dans un jeu de tir, le tir part du centre de l'écran dans la direction de la caméra. Le lancer de rayon se fait avec la fonction Physics.Raycast(). Celle-ci, en plus de l'origine (le centre de l'écran), a besoin de la direction dans laquelle le rayon part. Les informations liées à la collision entre le rayon et un objet de la scène sont récupérées dans une variable de type RaycastHit.
Les coroutines permettent notamment de réaliser des effets en fonction du temps. Une coroutine est une fonction dont le type de retour est IEnumerator et qui sera appelée à travers de la fonction StartCoroutine(). Le mot-clé « yield » permet de mettre en pause la coroutine afin de laisser le reste du programme s'exécuter.
Lire aussi: Chasse sur Wii : Guide Complet
L'effet d'explosion est réalisé grâce à la détection de collision du moteur. Pour l'effet de choc de l'explosion, une sphère est utilisée afin de connaître les objets dans le rayon d'impact.
Premièrement, sélectionnez le GameObject du tank. Ajoutez-lui un nouveau GameObject vide que vous nommerez « FireTransform ». Ensuite, ajoutez un « Slider » dans le canevas existant. Celui-ci se nommera « AimSlider ». Encore une fois, par défaut, le curseur de défilement n'est pas du tout configuré comme nous le souhaitons. Supprimez l'objet enfant « Handle Slide Area » ainsi que le « Background ». Décochez la propriété « Interactable » du curseur de défilement et modifiez la « Transition » afin qu'elle soit à « None ». Finalement, la « Direction » doit être « Bottom To Top ».
Sélectionnez le curseur de défilement et sa « Fill Area » afin de modifier l'étirement et la position dans le but de l'étirer au maximum et de centrer les éléments. Ensuite, définissez la hauteur à 0. Dans l'éditeur de sprites il est possible de sélectionner comment l'image de flèche utilisée sera étirée et quelle partie sera fixe. En vous plaçant au-dessus du tank et en choisissant l'outil de travail sur les éléments d'interface utilisateur, vous pouvez redimensionner et placer le curseur de défilement exactement comme il se doit (devant le tank et ne pas être plus large que le tank). Puis, remontez-le grâce à l'outil de déplacement des objets, afin qu'il soit légèrement au-dessus du sol.
Exemple de code pour la gestion du son et de la force de lancement :
public AudioSource m_ShootingAudio; // Référence vers la source audio jouée lors du tir.// ...// ...// ...// Réinitialise la force de lancement.Cette leçon vous guidera à travers le processus de mise en œuvre des procédures appelées à distance (RPC) dans Unity pour améliorer les fonctions de rechargement et de tir dans un jeu multijoueur utilisant Photon. Nous commencerons par l'utilisation de méthodes similaires à celles utilisées pour l'instantiation des projectiles, et nous ajusterons le script BehaviourWeapon pour créer une RPC Reload. En utilisant des copier-coller stratégiques, nous modifierons les fonctions existantes pour intégrer ces RPC de manière efficace.
Lire aussi: L'histoire des jeux vidéo
Ensuite, nous testerons cette implémentation en utilisant Unity et vérifierons la synchronisation des armes entre les clients.
Nous allons ajouter un point rouge au milieu de l’écran, cela nous permettra de viser plus facilement les cibles. Créez un objet : UI > Raw Image. Définissez :
Créez un GameObject vide : Create Empty. Renommez-le Training. Définissez la Position : x=0 ; y=2 ; z=10. Créez un 3D Object > Cube. Renommez-le Socle. Glissez-le dans Training. Position : x=0 ; y= -1 ; z=0. Scale : x=0.5 ; y=2 ; z= 0.5. Créez un 3D Object > Cube. Renommez-le Target. Position: x=0 ; y=0.5 ; z=0. Glissez-le dans Training. C’est l’objet Target qui recevra les tirs de notre arme.
Créez un nouveau Layer (Calque). Dupliquez Training trois fois.
Lire aussi: Tout savoir sur le paintball
tags: #jeux #de #tir #3d #unity #tutoriel