Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Tutoriel 9 : TextMeshPro, Canvas

IUT d'Orsay, Université Paris-Saclay

Objectifs

Nous allons apprendre à :

TextMeshPro et Canvas

  1. Suivez le tutoriel suivant pour créer une nouvelle scène qui sera le menu de démarrage du jeu. Le bouton OPTIONS pourra être remplacé par TUTORIAL qui affichera les contrôles du jeu.

  1. Suivez le tutoriel suivant pour créer un Pause Menu dans vos niveaux. Il suffit d’avoir un bouton RESUME pour reprendre le jeu.

Lives et Score

  1. Créez un Canvas simple, comme enfant de Game Session pour afficher les points de vie et le score (juste des valeurs arbitraires pour le moment) de Player sur l’écran. Les textes de points de vie et de score seront des enfants de Canvas.

  2. Dans Event System (créé automatiquement quand vous avez créé un canvas), cliquez sur Replace with InputSystemUIInputModule.

  3. Dans GameSession.cs, importez using TMPro, ajoutez la variable [SerializeField] TextMeshProUGUI livesText puis récupérez l’objet texte du canvas qui affiche les points de vie.

  4. Dans la méthode Start de GameSession.cs, affichez les points de vie de Player avec livesText.text = "Lives: " + playerLives.ToString().

  5. Affichez également la vie du joueur dans TakeLife.

  6. Implémentez la méthode public void AddToLife() qui augmente playerLives de 1 et qui l’affiche.

  7. Faites de même pour le score.

  8. Ajoutez des tags différents aux pièces et aux points de vie.

  9. Dans Pickup.cs, selon le tag de l’objet courant, ajoutez des points de vie ou du score avec FindAnyObjectByType<GameSession>().AddToLife() ou AddToScore().

Scene Persist

Nous souhaitons que les progrès réalisés par un joueur ne soient pas perdus lorsque la scène redémarre (par exemple, les pièces ramassées et les ennemis tués restent détruits).

  1. Créez un objet vide nommé Scene Persist avec un script ScenePersist.cs.

  2. Dans ScenePersist.cs, implémentez Awake de la même façon que vous avez implémenté Awake dans GameSession.cs.

  3. Dans ScenePersist.cs, implémentez la méthode public void ResetScenePersist() qui détruit l’objet.

  4. Dans GameSession.cs > ResetGameSessions, ajoutez FindAnyObjectByType<ScenePersist>().ResetScenePersist() pour détruire Scene Persist quand le jeu recommence.

  5. Mettez tous les objets de la scène qui peuvent avoir le comportement mentionné ci-dessus comme enfant de Scene Persist.

Victory et Game Over

  1. Créez une scène simple pour le Game Over avec un bouton pour revenir au menu de démarrage.

  2. Modifiez la méthode ResetGameSessions de GameSession.cs pour prendre en argument un string qui sera le nom d’une scène.

  3. Appelez la scène correspondant au Game Over dans ProcessPlayerDeath.

  4. Créez une autre scène simple pour la victoire avec le score courant du joueur, un bouton qui appelle ResetGameSessions pour revenir au menu de démarrage.

  5. Pour l’exit du dernier niveau de votre jeu, faites en sorte que l’écran de victoire soit la prochaine scène appelée.