Récapitulatif : FindNearest
Fait partie de la section Architecture de jeu dans Unity du Journey Unity de Coddy. Leçon 36 sur 50.
Défi
MoyenUn robot de nettoyage collecte des gemmes, puis va se recharger. Gem et ChargePad sont des scripts marqueurs vides (prêts à l’emploi), et le robot possède MoveTo(point), qui le fait avancer vers un point à speed et renvoie true une fois qu’il y est.
- Dans
Helpers.cs, écris une classe statiqueHelpersavec une méthode génériqueFindNearest<T>(IEnumerable<T> items, Vector3 from)pour n’importe quel type de composant. Elle renvoie l’élément dont la position est la plus proche defrom, ou null s’il n’y a aucun élément. - Dans
Robot.cs, à chaque image, le robot se dirige vers la gemme la plus proche dans la scène, depuis sa position actuelle, et détruit la gemme lorsqu’il l’atteint. - Lorsqu’il ne reste plus de gemmes, le robot se dirige vers le
ChargePadle plus proche. À son arrivée, il consigneChargingune seule fois et reste sur place.
Utilise FindNearest pour les gemmes comme pour les pads. Appuie sur Play, observe le robot, puis clique sur Check.
Essayez vous-même
using System.Collections.Generic;
using UnityEngine;
// Helpers.FindNearest<T> : l'élément le plus proche d'un point, ou null
Toutes les leçons de Architecture de jeu dans Unity
1Des composants, pas des hiérarchies
Des composants simplesUn script de base pour les ennemisDes composants abstraitsDes composants qui fonctionnent ensembleRécapitulatif : tourelle modulaire4Données sérialisées
Classes sérialisablesListes dans l’inspecteurÉnumérations dans l’inspecteurRécapitulatif : table de butin7Machines à états
Les états sous forme de classesUne machine à étatsTransitionsLes cerveaux des ennemisRécapitulatif : états d’une porte10Projet : Survivant de l’arène
Le hérosTypes d’ennemis2Interfaces dans Unity
IDamageableInterfaces et TryGetComponentGetComponentsRécapitulatif : touche d’interaction5ScriptableObjects
Assets de donnéesStatistiques des armesParamètres partagésLes vagues sous forme de donnéesRécapitulatif : base de données d’objets8Code réutilisable
Méthodes d’extensionUn singleton génériqueFonctions utilitaires génériquesRécapitulatif : FindNearest