[[Développement Unity]] # Retour à la case départ Tout d'abord, on va créer un menu qui s'affichera lorsque le joueur décède. On va faire comme pour créer les cœurs. Dans la **Hierarchy**, sélectionnez le **Canvas, clic droit dessus > UI > Image > renommer le GameObject Image**. Rentrer ces dimensions pour que l'image prenne toute la fenêtre : ![[Capture décran 2025-06-23 112600.png]] Et mettre les ancres en stretch pour que ça s'adapte à tous les écrans ![[Capture décran 2025-06-23 112801.png]] Changez la couleur et la transparence de l'image pour que ça grise l'écran : ![[color.gif]] Toutes les actions réalisées doivent ressembler à ça : ![[Capture décran 2025-06-23 113412.png]] Maintenant, en enfant de cette image que l'on vient de créer, on va créer un bouton qui rechargera notre niveau lorsque le joueur cliquera dessus. Comme pour l'image, dans la **Hierarchy**, sélectionnez l'**Image, clic droit dessus > UI > Button-Text Mesh Pro > renommer le GameObject Button**. ![[button.gif]] Une fenêtre pourrait apparaitre pour vous demander d'importer TMP Essentials et TMP Exemples & Extras. **Importez les deux**, si vous ne le faites pas cela nuira au bon fonctionnement de vos textes. ![[TMPess.gif]] Pour changer le texte sur le bouton, sélectionné le GameObject enfant du bouton que vous venez de créer ![[Code et Développement/Développement d'Applications/Développement Unity/ressources/image (8).png]] Dans l'inspector, dans le component **TextMeshPro - Text (UI)** modifiez le texte par **"Recommencer"** : ![[Code et Développement/Développement d'Applications/Développement Unity/ressources/image (1) (3).png]] Comme vous pouvez le voir le texte est un peu long pour la taille du bouton : ![[Code et Développement/Développement d'Applications/Développement Unity/ressources/image (2) (3).png]] Pour réduire la taille du texte, sous la zone dans l'Inspector où vous avez modifié le texte, cochez **Auto Size** cela adaptera directement la taille du texte à la zone représenté en jaune dans la fenêtre scène et **modifiez la taille de la fenêtre jaune** pour que ça soit plus joli. ![[Code et Développement/Développement d'Applications/Développement Unity/ressources/image (3) (1).png]] **Créer l'interaction** Revenez sur le bouton. Dans ses components, vous pouvez en trouver un qui s'appelle **Button**. Dans ce component il y a une partie qui s'appelle **On Click ()**, si on fait **+** on va pouvoir ajouter un évènement qui se jouera lorsque le joueur cliquera dessus. ![[onClick.gif]] Pour le moment, nous n'avons pas de script permettant de redémarrer le niveau. Dans le dossier **Script > clic droit > Create > Scripting > MonoBehaviour Script > Renommer le script > l'ouvrir**. Supprimez les fonctions Start et Update du script. Créez une nouvelle fonction publique **ReloadScene()**. Voici le script qui permet de charger une scène : ```csharp public void ReloadScene() { //Faire attention à bien mettre le même nom de scène que dans Unity entre les (" "). SceneManager.LoadScene("Game"); } ``` **Ctrl + S** Glissez déposez le script sur le bouton. ![[dragndrop (1).gif]] Dans le component du **Button** du bouton, glissez déposez le bouton de la hierarchy vers dans **On Click ()** > **None (Object)**. Cliquez sur **No Function > _Nom de votre script_ > ReloadScene** ![[reload.gif]] Désactivez le parent de votre bouton pour qu'il ne se lance pas dès qu'on commence le jeu. ![[desactive.gif]] Pour qu'il s'active, allez dans le script qui gère les PV, déclarez votre GameObject en public et appelez le dans la condition PV <=0, et activez le avec cette ligne : ```csharp nomGameObject.SetActive(true); ``` Si vous voulez être sûr que votre GameObject soit désactivé au lancement du jeu, dans la fonction Start, mettez la même ligne en passant le true à false. **Ctrl + S** Glissez déposez le gameObject dans l'inspector du script attaché au Player. Voilà ce qu'il se passe lorsque le joueur a perdu ses PV : ![[deathPanel.gif]] [[16. Tuer l'ennemi]] ---