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.
Défi
FacileFais fonctionner les trois boutons du pont-levis dans Drawbridge.cs.
- La ligne On Click () de chaque bouton appelle
Raise,LowerouToggleLamp. RenommeLowerBridgeenLower. - Écris
public void Raise():bridge.localRotationpivote de 70 degrés autour de l’axe x, etstatusTextafficheBridge: up. - Écris
public void ToggleLamp(): la méthode allumewarningLampquand 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
1Texte à l’écran
Canvas et texteAfficher le scoreFormater les nombresUn compte à reboursRécapitulatif : compteur de vitesse4Scènes et niveaux
Charger une scèneRedémarrer le niveauNiveau suivantConserver entre les scènesRécapitulatif : sélection du niveau2Boutons et écrans
Boutons et onClickLambdasRelier les éléments dans l’InspectorActiver et désactiver les panneauxBarres de santéRécapitulatif : boutique d’améliorations5Sauvegarder avec PlayerPrefs
Enregistrer un nombreCharger avec une valeur par défautMeilleur scoreEnregistrer les paramètresRécapitulatif : les pièces à la banqueEntraînez-vous par vous-même : Playground Unity