Pour terminer un niveau, vous avez besoin d'un déclencheur. Créez un cube pour cela et redimensionnez-le selon vos besoins.
Sélectionnez l'axe Y et passez à la vue isométrique avec le cube. Faites glisser votre cuboïde à la fin du niveau ou à l'endroit où le niveau devrait se terminer.
Par exemple, étiquetez-le Fin. Puisque vous ne voulez pas que le déclencheur soit vu dans le jeu, désactivez le moteur de rendu de maillage. Au Collider « is Trigger » doit être activé.
Sélectionnez une icône colorée dans la fenêtre Inspecteur afin que vous puissiez toujours voir la boîte.
Si l'icône n'est pas visible, ouvrez les gadgets dans Unity et activez les icônes 3D avec le curseur et déplacez le curseur. Vous reconnaîtrez alors votre déclencheur, même s'il est invisible.
Créez un script appelé EndTrigger.
Le déclencheur est avec
void OnTriggerEnter () détecté
Une référence au GameManager est maintenant requise.
Vous créez une variable : public GameManager gameManager ;
En référence à GameManager, vous avez besoin d'une nouvelle fonction dans GameManager. C'est pourquoi vous ouvrez maintenant le script GameManager.
Vous y créez une nouvelle variable :
public void CompleteLevel ()
Vous avez maintenant créé une nouvelle fonction dans GameManager :
Vous pouvez maintenant appeler cette fonction dans le script EndTrigger :
gameManager.CompleteLevel ();
Le TriggerScript ressemble maintenant à ceci :
Maintenant, vous faites glisser le GameManager dans l'espace libre du script.
Puisqu'un message n'apparaît que dans la console pour le moment, nous devons maintenant créer une interface utilisateur pour le joueur.
Créez donc un panneau d'interface utilisateur dans Canvas. Passez en mode 2D et concentrez-vous dessus avec F. Supprimez l'image d'arrière-plan pour rendre l'interface utilisateur transparente.
Nommez-le LevelComplete. Ajoutez du texte avec un clic droit et une interface utilisateur.
Ajustez les limites de votre texte. Enfin, centrez-le. Changez la police. Augmentez la taille de la police à z. B. 100
Remplacez le texte par Niveau. Nommez également le TextObject en tant que niveau. Dupliquez l'objet et nommez-le Terminé. Définissez la 2e police selon vos besoins. Si vous marquez les deux objets en même temps, vous pouvez les déplacer ensemble.
A la fin, désactivez "Level Complete".
Encore une fois, une référence est requise dans le GameManager.
Vous pouvez le faire avec une nouvelle variable :
public GameObject completeLevelUI ;
De plus, vous ajoutez maintenant la fonction sous
public void CompleteLevel ()
{
completeLevelUI.SetActive (true);
Ceci active la fonction.
Le script ressemble maintenant à ceci :
Faites maintenant glisser LevelComplete dans le GameManager.
Lorsque vous avez terminé le niveau, Niveau terminé apparaîtra.
Ensuite, nous ajoutons une animation. Activez d'abord à nouveau l'interface utilisateur. Vous avez maintenant besoin de la fenêtre d'animation.
Créez un dossier pour l'animation. Nommez la nouvelle animation "LevelComplete". Vous trouverez maintenant deux actifs dans le dossier du projet.
Le premier est l'animation elle-même. Désactivez la boucle car l'animation ne devrait jouer qu'une seule fois.
Le second est le contrôleur d'animation qui apparaît dans l'animateur. L'animateur peut être utilisé pour assembler et lier des animations complexes.
L'animation LevelComplete est surlignée en orange. Cela signifie qu'il jouera comme la première animation lorsque le niveau sera terminé.
Retournez à la fenêtre d'animation. Si le mode d'enregistrement ou le mode d'enregistrement est activé, le système enregistre chaque modification de l'objet sous forme d'images clés.
Par exemple, choisissez 1:00 et baissez le mode alpha de la couleur. Une image clé est automatiquement créée au début, dans laquelle le mode alpha est encore complet. Changez la position des images clés. En conséquence, le niveau complet apparaît sous le mode alpha augmente. Allez à environ 0:50 et réduisez le mode alpha pour les couleurs de police de l'interface utilisateur. Échangez les images clés correspondantes avec celles de devant.
Désactivez à nouveau l'interface utilisateur LevelComplete. À la fin du niveau, l'interface utilisateur devrait maintenant afficher Niveau terminé.
Après quelques secondes, le nouveau niveau devrait maintenant être chargé après quelques secondes. Pour ce faire, ajoutez un événement juste avant la marque des 2 secondes.
L'événement d'animation vous permet de choisir une fonction.
Nous avons besoin d'un script pour l'objet LevelComplete. Ce script charge un nouveau niveau. Nommez le nouveau composant : LevelComplete.
Dans le nouveau script, ajoutez :
public void LoadNextLevel ()
une.
Vous pouvez maintenant sélectionner LoadNextLevel comme fonction.
Chaque fois que l'animation arrive à ce point, la nouvelle scène sera chargée.
Ensuite, la scène devrait changer.
Pour cela, vous avez besoin du gestionnaire de scène :
en utilisant UnityEngine.SceneManagement ;
Sous le vide public vient :
SceneManager.LoadScene ()
Maintenant, seule la scène pertinente doit être chargée. Cependant, la scène à charger dépend du niveau. Le BuildIndex est donc utilisé pour le chargement.
Sous Fichier -> Paramètres de construction, Unity vous montre vos scènes. Vous devrez peut-être encore les faire glisser. À la fin, l'index de construction s'affiche. Unity doit charger la scène en fonction de l'index de construction ou de la scène actuelle + 1.
Sous le vide public LoadNextLevel vient :
SceneManager.LoadScene (SceneManager.GetActiveScene (). BuildIndex + 1);
Le script ressemble à ceci :
Assurez-vous qu'il y a toujours une nouvelle scène par la suite, sinon Unity affichera une erreur.
Publié à l'origine le 2020-06-10 18:11:00.