Rechercher par nom
Fait partie de la section Les bases du scripting dans Unity du Journey Unity de Coddy. Leçon 56 sur 85.
GameObject.Find("Player") recherche dans la scène un objet actif portant exactement ce nom et le renvoie, ou renvoie null s’il n’y en a aucun. Cela évite de relier un champ dans l’Inspector, mais a un coût : la méthode parcourt tous les objets de la scène. Appelez-la donc une seule fois, dans Start(), et conservez le résultat dans un champ. Cette caméra de sécurité trouve le Player au démarrage du jeu et le surveille à chaque image :
private Transform player;
void Start()
{
player = GameObject.Find("Player").transform;
}
void Update()
{
transform.LookAt(player);
}Le nom doit correspondre exactement, majuscules et espaces compris : "player" ou "Player " ne trouve rien. Find ignore également les objets inactifs (masqués). Une recherche infructueuse renvoie silencieusement null, et l’erreur apparaît à la ligne suivante qui utilise le résultat : ici, .transform déclenche une NullReferenceException. Un chemin tel que "Car/Wheel" trouve Wheel, qui est un enfant de Car.
Défi
MoyenLe rover indique à quelle distance se trouve son objectif.
- Dans
Start(), définisgoal = GameObject.Find("Goal").transform;. - Dans
Update(), lorsqueInput.GetKeyDown(KeyCode.Space)est détecté, affiche"Distance to goal: " + Vector3.Distance(transform.position, goal.position).
Appuie sur « Jouer » puis sur Espace : la Console affiche Distance to goal: 5. Ensuite, appuie sur « Vérifier ».
Essayez vous-même
using UnityEngine;
public class Beacon : MonoBehaviour
{
private Transform goal;
void Start()
{
// Trouve l’objet nommé Goal et conserve son Transform dans goal.
}
void Update()
{
// Space : affiche la distance jusqu’à goal dans la console.
}
}
Toutes les leçons de Les bases du scripting dans Unity
1Les bases de C# dans Unity
Bonjour, UnityVariablesLes nombres décimaux ont besoin d’un fDu texte dans la consoleDes variables qui mémorisentSi et sinonComparer des nombresRécapitulatif : le collecteur de pièces7Boucles et méthodes
Répéter avec forBoucles imbriquéesÉcrire une méthodeMéthodes qui renvoient une réponseTableauxRécapitulatif : escalier10Rechercher des objets
Rechercher par nomTagsRechercher par typeLes références plutôt que la rechercheLe null de UnityRécapitulatif : la pièce la plus proche13Projet : Éviter les blocs
Le coureurDes blocs tombent du ciel2Mettez-le en mouvement
Placez le cubeDéplacez-le à chaque frameTournez chaque secondeDirigez avec les touchesRécapitulatif : pilotez le cube5Vecteurs
Additionner des vecteursDirectionsEspace local et espace globalVitesse diagonaleDistance entre des objetsVector3 est une structureRécapitulatif : pilote de drone8GameObjects et composants
Références dans l’InspectorObtenir un composantComposants manquantsAjouter un composantRequireComponentAfficher et masquerRécapitulatif : interrupteur3L’inspecteur
Champs de l’inspecteurSerializeFieldFlottants et MathfAttributs de l’inspecteurRécapitulatif : ascenseur6Transformations et hiérarchie
Parents et enfantsHissez le drapeauÉchelleRegarder les objetsSe déplacer vers un pointRécapitulatif : la lune en orbite9Projet : Attrape l’étoile
Le receveurUne étoile filanteEntraînez-vous par vous-même : Playground Unity