‫S'il y a une chose qui est la chose la plus importante pour un coureur infini, alors c'est l'infini.
‫Et pour créer un monde infini dont nous avons besoin et une création procédurale, nous devons le créer de manière procédurale, ce
‫qui signifie que nous devons le faire via du code.
‫Donc, nous ne voulons pas créer un monde immense de, je ne sais pas, un milliard de pièces différentes de nos éléments de base
‫ou de vieilles pièces.
‫Nous voulons le faire par programmation et nous pouvons le faire de manière procédurale.
‫Donc ce que je veux faire maintenant, c'est tout d'abord, je veux installer mon cristal et je veux changer le cristal, pas
‫être quelque part dans le monde ou n'importe où où je l'ai positionné.
‫Je veux que ce soit sur une partie de route.
‫Positionnons donc notre cristal.
‫Celui-ci ici.
‫Positionnons-le sur notre partie route.
‫Alors débarrassons Barway de tous les autres cristaux.
‫Supprimez aussi, débarrassons-nous de nos pièces de route, supprimez aussi.
‫Et maintenant en tant que directeur Crystal sur notre jeu.
‫Donc disons à peu près ici est en bonne position.
‫Voyons si c'est juste au dessus.
‫Juste au dessus, ouais, ça va.
‫Alors c'est bon et je veux mettre le cristal sur la partie route et maintenant je vais désactiver le
‫cristal.
‫Alors maintenant, comme vous pouvez le voir, il n'est plus disponible.
‫Il faudrait l'activer.
‫Et maintenant, cette partie de route sera un nouveau préfabriqué.
‫Alors suivons cette partie de la route dans notre dossier prefabs.
‫Et nous voulons créer plusieurs de ces parties de route de manière procédurale plus tard.
‫D'accord.
‫Avant de faire cela, il y a un élément de base de notre jeu qui sera toujours le même.
‫Donc ça va être notre route d'une certaine manière.
‫Au fait, débarrassons-nous aussi des cristaux.
‫Et maintenant, nous pouvons dupliquer le cristal et le déplacer en conséquence.
‫Ainsi, les premières étapes sont toujours les mêmes, puis nous passons au site.
‫Donc, cette pièce sera toujours la même, alors jetons un coup d'œil au jeu vous.
‫Ouais, c'est toujours pareil.
‫Ils bougent toujours comme ça.
‫Et le suivant.
‫D'accord.
‫Alors maintenant, c'est le début de notre carte.
‫Et maintenant, nous voulons aller de l'avant et le rendre procédural afin que les pièces soient
‫créées automatiquement et efficacement.
‫Et pour ce faire, créons un nouveau script pour notre route.
‫Passons donc à notre route au composant et au nouveau script et appelons cela une route.
‫Maintenant, ouvrons celui-là.
‫Et ici, nous aurons besoin de notre préfabriqué repat.
‫Donc jeu public, objet route préfabriqué.
‫Attribuons cela très rapidement à l'unité afin que notre script de route ait besoin d'un préfabriqué de route.
‫Suivons d'ailleurs le script dans notre dossier de scripts.
‫Passons maintenant à notre.
‫Road et dirige maintenant le script de route ou l'objet de jeu de partie de route.
‫D'accord, que nous n'avons plus de préfabriqué.
‫D'accord.
‫Ensuite, nous aurons besoin de savoir à partir de quel moment voulons-nous que notre monde soit créé ?
‫J'ai donc une flèche ici.
‫La partie brute 11 n'est pas nécessaire, c'est donc trop peu.
‫Donc, à partir de la route, je veux continuer et créer de nouvelles pièces de route.
‫Donc à partir de ce moment.
‫J'ai donc besoin de me positionner à partir du moment où je veux créer de nouvelles parties de route, la position est la position ou la
‫position de transformation de notre partie de route.
‫Et si nous le regardons, c'est à la position zéro zéro sept virgule neuf.
‫OK, alors vérifions cette position.
‫Je vais le faire glisser dans notre script de route.
‫Je veux avoir ce poste.
‫Je vais donc créer un nouveau vecteur public trois derniers post.
‫Je vais donc l'appeler et je vais l'ajouter ici à zéro zéro sept virgule neuf ou neuf.
‫C'était la position de notre dernière partie de route.
‫Maintenant, ce que nous devons savoir, c'est de combien devons-nous déplacer un objet ?
‫Donc, cette partie de route, plaçons-la à l'extérieur et maintenant déplaçons-la ou dupliquons cette puissance de route et
‫déplaçons-la avec contrôle et changement de vitesse.
‫Et puis nous pouvons voir qu'il se déplace par point entier, sept oh sept.
‫C'est donc à peu près la largeur ou le changement de la position de notre bloc.
‫Et ça devrait être la largeur aussi.
‫D'accord.
‫Revenons donc à nos scripts de route ici.
‫Nous aurons besoin de connaître cette compensation.
‫Créons donc un nouveau décalage de flotteur public et il s'appelle le point sept oh sept en tant que flotteur.
‫Et maintenant créons une méthode.
‫Je vais me débarrasser de la méthode de démarrage.
‫Je vais créer une nouvelle méthode, public void, créer une nouvelle partie de route.
‫Et pour le moment, je vais juste déboguer le backlog, créer une nouvelle partie de route.
‫Et dans la méthode de mise à jour, je vais vérifier si l'utilisateur appuie sur un bouton.
‫Alors, saisissez cette touche.
‫Et quel code je veux.
‫Espace de point de code de clé.
‫Donc, chaque fois que le joueur appuie sur l'espace, je veux créer une nouvelle partie de route.
‫Allons avec ça maintenant.
‫Créons donc cette méthode encore plus loin.
‫Créez donc une nouvelle partie de route.
‫De quoi avons-nous besoin ici ?
‫Nous devons générer la position, qui est un vecteur trois, donc ne l'appelons pas spon post vecteur trois zéro, qui
‫est la position zéro zéro zéro.
‫C'est donc une deuxième position à partir de laquelle nous commençons.
‫Ensuite, nous voulons avoir une chance, qui est une variable aléatoire comprise entre zéro et cent.
‫Et si la chance est inférieure à cinquante, alors je veux frayer à gauche et sinon je veux répondre à
‫droite.
‫Donc si la chance est inférieure à cinquante, je veux avoir un ensemble positif et sinon je veux avoir un décalage
‫négatif.
‫La position de Sporn va donc être le nouveau vecteur trois, qui est la dernière position que X plus le décalage et
‫la dernière position Y.
‫Donc, je suppose que c'est pourquoi et enfin, le dernier post a pensé Z plus le décalage, ce qui signifie qu'il déplacera notre ou qu'il créera
‫une position d'apparition, qui est un vecteur trois, qui attribuera la position d'apparition, qui est un
‫vecteur trois .
‫Et nous l'utiliserons plus tard pour générer notre objet de jeu, qui est notre pièce écrite ou notre partie de rouleau.
‫Sinon, je voulais que la position d'apparition soit égale au nouveau vecteur trois, le dernier message X moins le décalage.
‫Dernier message Y et dernier message Zeeb, plus le.
‫Maintenant, allons de l'avant et créons les objets du jeu.
‫Je vais appeler un G instancié afin que nous ayons créé dans notre monde d'unité, a écrit prefab.
‫Et à quelle position en position d'apparition.
‫Et quel quaternion voulons-nous avoir ?
‫Nous utilisons le quaternion dot yula, ce qui signifie que nous le faisons pivoter avec zéro virgule quarante-cinq zéro car nos objets de jeu
‫sont également tournés.
‫Et nous voulons que nos routes soient tournées et nous voulons qu'elles soient également tournées ici.
‫Et maintenant nous avons besoin de la dernière position ou devons définir la dernière position, qui est Gedo, transformer
‫cette position.
‫Parce que c'est la nouvelle position, non ?
‫Nous devons savoir quelle est la dernière position de notre nouvel objet de jeu.
‫Nous avons donc commencé avec la dernière position que nous avons configurée manuellement, et maintenant nous la configurons toujours avec celle
‫qui est créée.
‫Ainsi, la nouvelle partie de route a une position spécifique et nous l'enregistrons dans notre dernière variable de publication.
‫D'accord.
‫Alors essayons ça.
‫Je suis retourné sur Unity et j'ai créé l'écran partagé.
‫Cela a du sens ici parce que ce que nous voulons voir, c'est ce qui se passe dans la scène.
‫Alors permettez-moi de me débarrasser du son très rapidement, même s'il est génial.
‫Maintenant, entrons dans le jeu vous et maintenant appuyons sur le Spassky.
‫Et comme vous pouvez le voir ici dans la scène, vous notre monde est maintenant créé sur la base de nos robinets.
‫Mais bien sûr, nous voulons que cela se produise, pas en nous basant sur le fait de cliquer tout le temps.
‫Nous voulons que cela se produise en fonction de la position que nous avons.
‫Maintenant, revenons au script.
‫Créons donc cela automatiquement.
‫Utilisons ici la méthode d'éveil du vide privé.
‫Et invoquons simplement la répétition ou appelons la méthode révoquer la répétition et que voulons-nous
‫bien invoquer la répétition et créer une nouvelle méthode de tronçon de route.
‫Et nous voulons le faire après une seconde et nous voulons le faire à chaque seconde.
‫Essayons donc ça.
‫Sauvons le jeu et voyons ce qui se passe maintenant.
‫Alors essayons ça.
‫Et nous pouvons voir à chaque seconde qu'une nouvelle partie de route est créée.
‫D'accord, mais ce n'est pas exactement ce que nous voulons.
‫Nous ne voulons pas qu'il soit créé chaque fois que nous sommes sur une semaine parce que maintenant, ce qui pourrait ou pourrait arriver, c'est que nous ne commençons
‫pas le jeu et qu'il ne fait que fonctionner et nous créons toujours un monde énorme à chaque seconde.
‫Mais ce que nous voulons faire, c'est seulement si le jeu est lancé.
‫Nous voulons les créer.
‫Alors comment fait-on ?
‫Eh bien, nous n'utilisons pas la méthode éveillée ici, mais nous en utilisons une autre, que
‫nous ou nous créons une autre, que nous appelons start start building.
‫Et ce ne sera pas privé, mais public car nous voulons y accéder depuis notre gestionnaire de jeu et bien sûr, nous n'aurons plus besoin de la méthode de
‫mise à jour maintenant avec la touche enfoncée où nous créons de nouvelles parties de route
‫en fonction de notre pression sur la touche .
‫Allons donc dans le gestionnaire de jeu et passons à la méthode de démarrage du jeu, car ici nous commençons le
‫jeu et c'est un point parfait pour créer ces objets.
‫Trouvons donc un objet de type et trouvons l'objet route.
‫Et là, nous avions une méthode appelée Start Building, et c'est celle que nous voulons appeler.
‫D'accord.
‫Allons de l'avant et testons cela.
‫Passons donc à notre jeu et j'obtiens une exception sans référence, et cela a à voir avec le fait que je n'ai plus
‫de gestionnaire de jeu.
‫Voyons donc comment nous pouvons changer cela.
‫Créons un nouveau jeu sur manager, si c'est aussi le cas pour vous.
‫Je vais créer un gestionnaire de jeu ici et je vais diriger ou je vais d'abord le
‫réinitialiser ici et faire glisser mon gestionnaire de jeu ici, car pour une raison quelconque, il a disparu.
‫Je vais donc enregistrer la scène maintenant et avant de tester.
‫Et bien sûr, nous devons attribuer le score et le texte et le texte du score le plus élevé.
‫Alors faisons-le et essayons à nouveau.
‫Et nous ne devrions pas obtenir l'erreur.
‫D'accord.
‫Alors maintenant, nous sommes de retour sur la bonne voie.
‫J'ai en quelque sorte dû l'avoir supprimé.
‫OK, alors maintenant essayons ou essayons.
‫Commençons le jeu.
‫Et comme vous pouvez le voir, le jeu est créé de manière procédurale à l'arrière et c'est un peu trop lent.
‫Nous sommes donc plus rapides que notre jeu ne crée ces pièces.
‫Créons donc de nouvelles parties écrites un peu plus rapidement.
‫Soit dit en passant, par exemple, nous pourrions les créer toutes les cinq secondes.
‫Alors allons-y, oh virgule cinq F maintenant, cela devrait résoudre ce problème.
‫Je pense que l'intervalle est bon.
‫Jetons un coup d'œil, commençons le jeu et voyons s'il en crée assez.
‫Donc ce que je n'aime pas c'est que je peux toujours voir comment il produit ces pièces.
‫Oh je suis tombé.
‫Cela signifie donc que comment le résoudre est assez simple.
‫Je pourrais simplement nous débarrasser de cette partie ici et de celle-là.
‫Eh bien, j'ai besoin de celui-là.
‫Ramenons-le sur notre route.
‫Je pourrais simplement dupliquer cette pièce ici et la déplacer plus loin.
‫En fait, déplaçons-le ici.
‫Dupliqué à nouveau pour que je puisse simplement agrandir un peu le monde.
‫Alors maintenant, gardons cela.
‫Et maintenant, je ne devrais plus voir où il est créé.
‫Alors commençons le jeu.
‫Et maintenant, bien sûr, nous avons le problème ici que nous n'avons plus le bon point final car où était-il
‫?
‫Notre route doit avoir la dernière position.
‫Donc le décalage de la dernière position et ça devrait être celui-ci ici maintenant.
‫Donc notre route, la partie 14 est maintenant la dernière.
‫Modifions donc les valeurs ici et prenons également la valeur Z de notre route et saisissons-la ici.
‫OK, alors réessayons maintenant.
‫Voyons où les pièces sont créées.
‫Et comme vous pouvez le voir, ils sont créés à la bonne position.
‫Parfait.
‫Et maintenant, je ne vois pas où mon monde est créé et je pense, OK, le point cinq secondes devrait être bien
‫parce que maintenant ça crée plus vite que je ne peux marcher.
‫OK c'est bon.
‫Maintenant, ajoutons à nouveau les cristaux, car nous n'avons pas de cristaux.
‫Maintenant, ce que nous voulons, c'est avoir nos cristaux.
‫Passons donc à notre script écrit.
‫Et ici, dans la création d'une nouvelle partie, nous voulons avoir un cristal tous les cinq pas ou tous les cinq écrits.
‫Créons donc un nombre de routes privées et de routes, qui est égal à zéro, et augmentons le nombre de routes pour chaque route que
‫nous créons.
‫Donc nombre de routes plus plus.
‫Et puis on vérifie.
‫Si le nombre de routes est divisé par cinq, donc modulo cinq est égal à zéro, alors nous voulons activer notre cristal.
‫Donc, g transforme la pensée pour que l'enfant soit à la position zéro.
‫Alors ajoutez-nous, récupérez l'objet du jeu et activez-le.
‫Vrai.
‫Donc, cela suffira, une route sur cinq aura désormais un cristal actif.
‫D'accord.
‫Et maintenant, disons le script, retournons à Unity et voyons si cela fonctionne.
‫Ainsi, les pièces de départ n'auront pas de cristaux.
‫Ainsi, ceux que nous avons créés manuellement n'auront pas de cristaux.
‫Le joueur doit donc passer par une certaine partie ici avant d'obtenir des cristaux.
‫Oh, maintenant, nous avons un petit problème ici, cependant.
‫Comme vous pouvez le voir, l'animation ne fonctionne plus correctement.
‫Et peut-être pouvez-vous deviner pourquoi.
‫Eh bien, cela a à voir avec le fait qu'à un moment donné, notre joueur était dans les airs ou n'a touché l'air que pendant une
‫fraction de seconde.
‫Et c'est à ce moment-là qu'il a commencé à ne plus bouger correctement ou deux.
‫Eh bien, non seulement corrigé, alors corrigeons cela.
‫Nous pouvons y remédier de deux manières.
‫Il se peut qu'à un moment donné, il y ait un espace entre les deux, de sorte que les blocs ne sont pas parfaitement alignés les uns
‫avec les autres.
‫Alors, quelle pourrait être l'une des raisons pour lesquelles un autre pourrait être ou une autre façon
‫de le résoudre pourrait être d'aller à l'animation de notre personnage et d'ajouter une nouvelle transition, de passer de la chute à
‫la course, et celle-ci sera basée sur une condition qui nous n'avons pas créé.
‫Créons donc un nouveau paramètre et appelons ce déclencheur.
‫Ne plus tomber, ce ne serait cependant pas la solution parfaite, donc la meilleure solution serait vraiment de vérifier
‫s'il y a des écarts entre mes pièces ici.
‫Mais je serais une option pour le faire, ne plus tomber.
‫Alors faisons-le.
‫Revenons à notre script ici et nous pouvons aller ici ailleurs dans notre contrôleur de graphique et la méthode de mise à jour.
‫Nous pourrions dire que si la refonte n'est plus à cette position, nous pourrions continuer et régler
‫la gâchette sur ne tombe plus.
‫Je pense que c'est comme ça que je l'appelle.
‫Alors vérifions-le.
‫Changeons cela pour ne plus tomber.
‫D'ACCORD?
‫C'était le terme correct, alors revenons à l'unité et changeons cela pour ne plus tomber.
‫Et maintenant, voyons si ce problème est résolu.
‫Alors jouons le jeu ici.
‫Nous pouvons aller sur notre scène et peut-être trouver une meilleure vue sur des choses comme ça.
‫Et maintenant, allons de l'avant et commençons le jeu.
‫Alors maintenant, collectons-en quelques-uns.
‫Comme vous pouvez le voir, il tombait là.
‫Il y avait un petit écart et c'était un écart dès notre départ.
‫Eh bien, le point où j'ai créé le champ manuellement et où nous avons commencé à le faire de manière procédurale.
‫Il devait donc y avoir un petit écart entre les deux.
‫Alors celle ou cette solution que je viens de vous montrer n'est qu'un patch, un petit patch.
‫Vous ne devriez pas vraiment utiliser ceux-ci lorsque vous passez à la vie.
‫Vous devriez donc trouver un petit écart que nous avons là.
‫Mais je pense que c'est trop ennuyeux de vous montrer cela en détail.
‫Voyons donc maintenant le chapitre suivant.
‫Oh, j'ai raté celui-là.
‫Comme vous pouvez le voir, notre jeu fait ce qu'il doit.
‫Nous avons un jeu fini ?
‫Je dirais que nous avons le son.
‫Nous pouvons collecter ces points.
‫Nous avons bien, nous avons un score élevé et ainsi de suite.
‫Et je pense que la chose la plus importante est notre monde procédural.
‫Maintenant, le défi pourrait être un peu plus élevé.
‫Bien sûr, vous pouvez modifier la vitesse du lecteur étape par étape.
‫Ensuite, bien sûr, vous devrez également changer le tempo auquel nous créons notre carte procédurale et que nous
‫sommes géniaux.
‫Donc je pense que c'est assez pour vous de m'avoir vu relier vingt-six points et le prochain chapitre nous allons créer
‫le prochain jeu.
‫J'espère donc que vous avez raison et j'espère que vous avez pris ce jeu et l'avez rendu encore meilleur.
‫Alors vous le rendez encore meilleur.
‫Alors s'il vous plaît allez-y et ajoutez des fonctionnalités qui, selon vous, rendraient ce jeu meilleur ou rendraient ce
‫jeu tout simplement incroyable.
‫Alors s'il vous plaît allez-y et faites-le et partagez-le avec nous.
‫D'accord.
‫Alors rendez-vous dans le prochain chapitre.