Menu
CoddyTech

Relier les éléments dans l’Inspector

Fait partie de la section Créer de vrais jeux du Journey Unity de Coddy. Leçon 8 sur 60.

Un bouton peut aussi être configuré dans l’Inspector, sans aucun AddListener. La liste On Click () du bouton est vide au départ. Son bouton + ajoute une ligne ; fais glisser dans l’emplacement de l’objet de cette ligne l’objet qui contient le script, et le menu déroulant des fonctions affiche les composants de cet objet, chacun avec ses méthodes publiques. Choisis Jukebox > NextTrack, et chaque clic appelle cette méthode :

public class Jukebox : MonoBehaviour
{
    public string[] tracks;
    private int current;

    public void NextTrack()
    {
        current = (current + 1) % tracks.Length;
        Debug.Log("Now playing: " + tracks[current]);
    }
}

Le menu déroulant affiche les méthodes qui sont public, renvoient void et ne prennent aucun paramètre, ou prennent un paramètre de type int, float, string, bool ou Object, dont tu définis la valeur dans la ligne. Une méthode privée NextTrack n’apparaît pas dans la liste : elle ne peut donc pas être sélectionnée. La ligne enregistre la méthode par son nom : si tu renommes NextTrack en SkipTrack, la ligne affiche <Missing Jukebox.NextTrack> et les clics ne font rien, sans qu’aucune erreur n’apparaisse dans la Console.

Les lignes dans l’Inspector conviennent aux boutons placés dans la scène : n’importe quel membre de l’équipe peut voir et modifier ce qu’un bouton appelle sans ouvrir de script. AddListener dans le code convient aux boutons créés pendant l’exécution du jeu et aux appels qui transmettent une valeur provenant d’une variable ; le compilateur détecte alors le renommage d’une méthode. Les écouteurs ajoutés depuis le code n’apparaissent jamais dans la liste On Click (), donc un bouton configuré des deux façons appelle les deux.

challenge icon

Défi

Facile

Fais fonctionner les trois boutons du pont-levis dans Drawbridge.cs.

  1. La ligne On Click () de chaque bouton appelle Raise, Lower ou ToggleLamp. Renomme LowerBridge en Lower.
  2. Écris public void Raise() : bridge.localRotation pivote de 70 degrés autour de l’axe x, et statusText affiche Bridge: up.
  3. Écris public void ToggleLamp() : la méthode allume warningLamp quand elle est éteinte, et l’éteint quand elle est allumée.

Appuie sur « Jouer » : chaque bouton fait ce qu’il doit. Puis clique sur « Vérifier ».

Essayez vous-même

using UnityEngine;
using TMPro;

public class Drawbridge : MonoBehaviour
{
    public Transform bridge;
    public TMP_Text statusText;
    public GameObject warningLamp;

    public void LowerBridge()
    {
        bridge.localRotation = Quaternion.Euler(0f, 0f, 0f);
        statusText.text = "Bridge: down";
    }
}

Toutes les leçons de Créer de vrais jeux

Entraînez-vous par vous-même : Playground Unity