Skip to article frontmatterSkip to article content

Tutoriel 7 : Scene Index, Invoke

IUT d'Orsay, Université Paris-Saclay

Objectifs

Nous allons apprendre à transitionner entre deux scènes.

Niveau 1

  1. Créez un premier niveau (assez grand pour que la caméra puisse dézoomer et bouger dans toutes les directions) avec des platformes qui entourent le monde (pour que le joueur ne puisse pas tomber en dehors du monde), des ennemis, de l’eau, des pics, des échelles. Prévoyez des endroits pour placer des pièces qui font gagner des points, des champignons qui font gagner des points de vies, et une sortie pour passer au niveau suivant.

Level Exit

  1. Créer un deuxième niveau (une autre scène) en dupliquant le niveau courant.

  2. Ajoutez un objet Exit à votre premier niveau avec le sprite Exit Pixelated et y attacher un script LevelExit.cs.

  3. Ajoutez une layer Interactables et un Trigger à Exit.

  4. Dans LevelExit.cs, nous allons importer using UnityEngine.SceneManagement.

  5. Définissez une méthode void OnTriggerEnter2D(Collider2D other).

  6. Dans OnTriggerEnter2D, nous allons appeler une méthode LoadNextScene() (à définir).

  7. Dans void LoadNextScene(), récupérez le buildIndex de la scène courante avec int currentSceneIndex = SceneManager.GetActiveScene().buildIndex. Puis, chargez la scène suivante avec SceneManager.LoadScene(currentSceneIndex + 1).

Pour améliorer la transition entre les niveaux, nous allons ajouter un délai au lieu de lancer le prochain niveau instantanément.

  1. Utilisez Invoke pour charger la scène suivante après un délai sceneLoadDelay modifiable avec [SerializeField].

  2. Vous pouvez maintenant faire un commit fin du tutoriel 7 et passer au Quiz 3.