[[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]]
---