Panneau des paramètres
SettingsPanel : animation DOTween d'ouverture/fermeture, pause du jeu, contrôle des volumes audio, qualité graphique et suppression des données joueur.
Le dossier UserInterface/SettingsManagement/ contient le panneau des paramètres accessibles à tout moment via le bouton engrenage.
SettingsPanel
Gère l’animation d’ouverture/fermeture du menu, la mise en pause du jeu, les volumes audio, la qualité graphique et la suppression des données.
Champs sérialisés
| Catégorie | Champs | Description |
|---|---|---|
| Animation | _panelTF, _shownPositionTF, _hiddenPositionTF | Transform utilisés par DOTween pour faire glisser le panneau depuis l’extérieur de l’écran |
| Contrôle | _tweenDuration, _outGO, _closeButton | Durée du glissement et boutons pour fermer (croix ou clic à côté) |
| Audio | _musicSlider, _sfxSlider, _voiceSlider | Les trois jauges de volume |
| Graphismes | _qualityToggle | Tableau de cases à cocher pour la qualité (la plus basse à la plus haute) |
| Danger Zone | _popUpPrefab, _canvas | Pop-up de confirmation avant effacement des données |
Initialisation
Au Start(), le panneau est caché. La méthode lit les PlayerPrefs et SettingsManager pour positionner sliders et toggles sur les valeurs sauvegardées, avant même que le joueur n’ouvre le menu.
Méthodes clés
| Méthode | Description |
|---|---|
ShowPanel() / HidePanel() | Animation DOMove fluide. SetUpdate(true) permet à l’animation de jouer même pendant une pause Unity. ShowPanel() appelle SettingsManager.PauseGameFromSettingsPanel(true) pour geler l’activité. |
ChangeQualitySettings(int value) | Envoie l’index de qualité choisi au SettingsManager qui modifie le moteur de rendu et sauvegarde. |
SetMusicVolume(...), SetSFXVolume(...), SetVoiceVolume(...) | Connectés aux événements OnValueChanged des sliders. Envoient la valeur à AudioManagerR1 en temps réel. |
EffacerDonneesJoueurs() | Instancie une pop-up de confirmation. Si confirmé : efface l’historique local (GameDataHistoric.ClearAllActivities()), supprime les données cloud (PlayFabManager.DeletePlayer()) et force la déconnexion. |