Activer et désactiver les panneaux
Fait partie de la section Créer de vrais jeux du Journey Unity de Coddy. Leçon 9 sur 60.
SetActive(false) sur le panneau le masque, ainsi que tout ce qu’il contient, et ses boutons ne peuvent pas être cliqués tant qu’il est masqué. Lorsqu’il est affiché, son image intercepte les clics destinés aux éléments situés en dessous : les boutons derrière un panneau en plein écran ne peuvent donc pas être activés. Cette carte s’ouvre avec un bouton dans un coin et se ferme avec un bouton sur la carte :public GameObject mapPanel;
public Button mapButton;
public Button closeButton;
void Start()
{
mapPanel.SetActive(false);
mapButton.onClick.AddListener(() => mapPanel.SetActive(true));
closeButton.onClick.AddListener(() => mapPanel.SetActive(false));
}Les panneaux sont plus faciles à modifier lorsqu’ils sont affichés ; les scènes sont donc souvent enregistrées avec les panneaux activés, et Start() les masque. Ne place pas le script qui ouvre un panneau sur ce panneau : un GameObject inactif n’exécute ni Start() ni Update(), donc un script placé sur un panneau enregistré masqué ne pourrait jamais connecter ses boutons. Le Canvas ou un objet de gestion du jeu, qui restent actifs, sont de bons emplacements pour ce script. mapPanel.activeSelf indique si le panneau est activé, donc mapPanel.SetActive(!mapPanel.activeSelf) inverse son état.
Défi
FacileAjoute un menu au jeu de prairie : écris Start() dans Menu.cs.
- Masque
menuPanelethelpPanelavecSetActive(false). menuButtonaffiche le menu et définitmover.enabled = false;resumeButtonle masque et définitmover.enabled = true.helpButtonmasque le menu et affiche l’aide ;backButtonfait l’inverse.
Clique sur « Jouer » et ouvre le menu : le joueur ne peut pas marcher avant de cliquer sur Reprendre. Puis clique sur « Vérifier ».
Essayez vous-même
using UnityEngine;
using UnityEngine.UI;
public class Menu : MonoBehaviour
{
public GameObject menuPanel;
public GameObject helpPanel;
public Button menuButton;
public Button resumeButton;
public Button helpButton;
public Button backButton;
public PlayerMover mover;
void Start()
{
// Masquer les deux panneaux, puis associer les boutons Menu, Resume, Help et Back à leurs actions
}
}
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