Création d'un menu pause dans Unity

L'ajout d'un menu pause est crucial pour tout jeu Unity, offrant aux joueurs un moment pour respirer et accéder aux options. Ce didacticiel vous guide tout au long de sa création, notamment des exemples de code et des explications.

1. Concevez votre menu de pause

  • Esquissez la mise en page souhaitée, y compris les boutons (Reprendre, Options, Quitter).
  • Pensez à utiliser des panneaux transparents pour une sensation moins intrusive.

2. Créer le canevas

  • Dans le panneau Hiérarchie, cliquez avec le bouton droit et choisissez "UI -> Canvas".
  • Réglez le "Render Mode" sur "Screen Space - Overlay" pour un positionnement correct.

3. Construire le panneau de menu

  • Sous le canevas, cliquez avec le bouton droit et choisissez "UI -> Panel".
  • Redimensionnez et positionnez le panneau selon votre conception.
  • Renommez-le en "PauseMenu" pour une meilleure organisation.

4. Ajouter des boutons

  • Cliquez avec le bouton droit dans le panneau PauseMenu et choisissez "UI -> Button."
  • Répétez l’opération pour chaque bouton souhaité (Reprise, Options, Quitter).
  • Nommez-les de manière appropriée (par exemple, "ResumeButton").
  • Personnalisez leur texte, leur taille et leur position.

5. Scripter la logique

  • Créez un nouveau script C# nommé "PauseMenu.cs."
  • Attachez le script à l'objet PauseMenu dans la hiérarchie.

6. Fonctionnalité de pause

'PauseMenu.cs'

public class PauseMenu : MonoBehaviour
{
    public bool isPaused; // Flag to track pause state

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            // Toggle pause state on Escape key press
            isPaused = !isPaused;
            if (isPaused)
            {
                PauseGame();
            }
            else
            {
                ResumeGame();
            }
        }
    }

    void PauseGame()
    {
        // Set Time.timeScale to 0 to pause gameplay
        Time.timeScale = 0;
        // Make PauseMenu panel visible (activate its gameObject)
        PauseMenu.gameObject.SetActive(true);
    }

    void ResumeGame()
    {
        // Set Time.timeScale back to 1 to resume gameplay
        Time.timeScale = 1;
        // Hide PauseMenu panel (deactivate its gameObject)
        PauseMenu.gameObject.SetActive(false);
    }
}

7. Interactions des boutons

  • Dans la fenêtre Inspecteur, sélectionnez chaque bouton.
  • Cliquez sur le "+" à côté de "OnClick" et faites glisser le script 'PauseMenu' sur le champ.
  • Choisissez la fonction appropriée (par exemple, ResumeGame pour ResumeButton).

8. Touches supplémentaires

  • Personnalisez les styles de boutons, ajoutez des effets sonores ou implémentez des menus d'options.
  • Pensez à utiliser prefabs pour une réutilisation dans toutes les scènes.

Conclusion

Espérons que ce guide vous a donné une longueur d'avance dans la création d'un menu de pause de travail en Unity. N'oubliez pas de développer cette base en ajoutant plus de fonctionnalités et en l'adaptant aux besoins spécifiques de votre jeu.