Menu
CoddyTech

Rechercher par nom

Fait partie de la section Les bases du scripting dans Unity du Journey Unity de Coddy. Leçon 42 sur 67.

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 d’assigner un champ dans l’Inspector, mais a un coût : cette 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 trouvent 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.

challenge icon

Défi

Moyen

Le rover indique à quelle distance se trouve son objectif.

  • Dans Start(), trouve l’objet nommé Goal et conserve son Transform dans goal.
  • Chaque fois que tu appuies sur Espace, affiche la distance entre le rover et l’objectif, comme Distance to goal: 5.

L’objectif peut bouger, alors mesure la distance au moment où tu appuies sur Espace.

Appuie sur Play, clique dans le jeu et appuie sur Espace, puis sur Check.

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.
    }
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Les bases du scripting dans Unity