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 56.

Un bouton peut également être configuré dans l’Inspector, sans aucun AddListener. La liste On Click () du bouton est vide au départ. Le bouton + ajoute une ligne ; faites glisser dans l’emplacement d’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. Choisissez 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 seul int, float, string, bool ou Object, dont vous définissez la valeur dans la ligne. Une méthode privée NextTrack n’est pas répertoriée, donc elle ne peut pas être sélectionnée. La ligne mémorise la méthode par son nom : renommez NextTrack en SkipTrack et la ligne affiche <Missing Jukebox.NextTrack>, et les clics ne font rien, sans erreur dans la Console.

Les lignes de l’Inspector conviennent aux boutons placés dans la scène : n’importe qui dans 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 la valeur d’une variable ; le compilateur détecte alors si une méthode a été renommée. 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

Le pont-levis du château a trois boutons, reliés dans l’Inspector au script Drawbridge sur BridgeControl. Aucun ne fonctionne encore. Sélectionne RaiseButton, LowerButton et LampButton dans la Hierarchy et lis chaque ligne On Click () : elle indique la méthode appelée au clic. Fais fonctionner les trois en modifiant uniquement Drawbridge.cs :

  • L’une des méthodes est déjà écrite sous un autre nom. Renomme-la comme indiqué sur sa ligne.
  • Lever le pont fait tourner bridge de 70 degrés autour de x (son localRotation) et affiche Bridge: up dans statusText.
  • Le bouton de la lampe allume warningLamp lorsqu’elle est éteinte et l’éteint lorsqu’elle est allumée.

Appuie sur Play, essaie chaque bouton, puis clique sur Check.

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";
    }
}
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 Créer de vrais jeux