‫Se c'è una cosa che è la cosa più importante per un corridore infinito, allora è infinita.
‫E per creare un mondo infinito di cui abbiamo bisogno e della creazione procedurale, dobbiamo crearlo proceduralmente, il
‫che significa che dobbiamo farlo tramite codice.
‫Quindi non vogliamo creare un mondo enorme di, non so, un miliardo di pezzi diversi dei nostri elementi meccanici
‫o parti vecchie.
‫Vogliamo farlo in modo programmatico e possiamo farlo in modo procedurale.
‫Quindi quello che voglio fare ora è, prima di tutto, voglio impostare il mio cristallo e voglio cambiare il cristallo, non essere
‫da qualche parte nel mondo o da qualche parte in cui l'ho posizionato.
‫Voglio che sia su una parte di strada.
‫Quindi posizioniamo il nostro cristallo.
‫Questo qui.
‫Posizioniamolo sulla nostra parte stradale.
‫Quindi liberiamo Barway di tutti gli altri cristalli.
‫Elimina anche, sbarazziamoci delle nostre parti stradali, elimina anche.
‫E ora come direttore Crystal sul nostro gioco.
‫Quindi diciamo che all'incirca qui è in buona posizione.
‫Vediamo se è solo in cima.
‫Proprio sopra, sì, va bene.
‫Quindi va bene e voglio mettere il cristallo sulla parte della strada e ora disattiverò il
‫cristallo.
‫Quindi ora, come puoi vedere, non è più disponibile.
‫Dovremmo attivarlo.
‫E ora quella parte della strada sarà un nuovo prefabbricato.
‫Quindi teniamo traccia di quella parte di strada nella nostra cartella dei prefabbricati.
‫E vogliamo creare più di quelle parti di strada proceduralmente in seguito.
‫Tutto bene.
‫Prima di farlo, c'è una parte fondamentale del nostro gioco che sarà sempre la stessa.
‫Quindi questa sarà la nostra strada in un certo modo.
‫Quindi, tra l'altro, liberiamoci anche dei cristalli.
‫E ora possiamo duplicare il cristallo e spostarlo di conseguenza.
‫Quindi i primi passaggi sono sempre gli stessi, e poi passiamo al sito.
‫Quindi questo pezzo sarà sempre lo stesso, quindi diamo un'occhiata al tuo gioco.
‫Sì, è sempre lo stesso.
‫Si muovono sempre così.
‫E il prossimo.
‫Tutto bene.
‫Quindi questo è l'inizio della nostra mappa.
‫E ora vogliamo andare avanti e renderlo procedurale in modo che i pezzi vengano creati
‫automaticamente ed efficientemente.
‫E per farlo, creiamo un nuovo copione per la nostra strada.
‫Quindi andiamo alla nostra strada al componente e al nuovo script e chiamiamo quella strada.
‫Ora apriamolo.
‫E qui avremo bisogno del nostro prefabbricato di ristrutturazione.
‫Quindi gioco pubblico, oggetto stradale prefabbricato.
‫Assegniamo quel real quick in unit così il nostro road script avrà bisogno di un prefabbricato stradale.
‫Tra l'altro, teniamo traccia dello script nella nostra cartella degli script.
‫Ora andiamo al nostro.
‫Road e ora guida lo script della strada o l'oggetto del gioco della parte della strada.
‫D'accordo, abbiamo praticamente finito i prefabbricati.
‫Tutto bene.
‫Successivamente, avremo bisogno di sapere da quale punto in poi vogliamo che il nostro mondo venga creato?
‫Quindi ho una freccia qui.
‫La parte grezza 11 non è necessaria, quindi è troppo piccola.
‫Quindi, dalla strada in poi, voglio andare avanti e creare nuove parti di strada.
‫Quindi da questo punto in poi.
‫Quindi ho bisogno di posizionare da quando voglio creare nuove parti di strada, la posizione è la posizione o la posizione
‫di trasformazione della nostra parte di strada.
‫E se diamo un'occhiata, è alla posizione zero zero sette virgola nove.
‫Ok, allora controlliamo quella posizione.
‫Lo riporterò indietro nel nostro copione stradale.
‫Voglio avere quella posizione.
‫Quindi creerò un nuovo vettore pubblico tre ultimo post.
‫Quindi lo chiamerò e lo aggiungerò qui a zero zero sette virgola nove o nove.
‫Quella era la posizione del nostro ultimo tratto di strada.
‫Ora, quello che dobbiamo sapere è di quanto dobbiamo spostare un oggetto?
‫Quindi questa parte di strada, posizioniamola all'esterno e ora spostiamola o duplichiamo quella potenza stradale
‫e muoviamola con controllo e cambio.
‫E poi possiamo vedere che si sta muovendo di un punto intero, sette o sette.
‫Quindi questa è più o meno la larghezza o il cambiamento della posizione del nostro blocco.
‫E dovrebbe essere anche la larghezza.
‫Tutto bene.
‫Quindi torniamo ai nostri script di strada qui.
‫Avremo bisogno di sapere che offset.
‫Quindi creiamo un nuovo offset float pubblico e si chiama punto sette o sette come float.
‫E ora creiamo un metodo.
‫Ho intenzione di sbarazzarmi del metodo di avvio.
‫Creerò un nuovo metodo, vuoto pubblico, creerò una nuova parte di strada.
‫E per ora farò solo il debug dell'arretrato, creerò una nuova parte di strada.
‫E all'interno del metodo di aggiornamento, controllerò se l'utente preme un pulsante.
‫Quindi inserisci quella chiave per abbassare.
‫E quale codice voglio.
‫Spazio del punto del codice chiave.
‫Quindi, ogni volta che il giocatore preme lo spazio, voglio creare una nuova parte di strada.
‫Andiamo con quello ora.
‫Quindi creiamo ulteriormente questo metodo.
‫Quindi crea una nuova parte di strada.
‫Di cosa abbiamo bisogno qui?
‫Dobbiamo generare la posizione, che è un vettore tre, quindi non chiamiamolo spon post vettore tre zero, che
‫è la posizione zero zero zero.
‫Quindi questa è una seconda posizione da cui iniziamo.
‫Quindi vogliamo avere una possibilità, che è una variabile di intervallo casuale tra zero e cento.
‫E se la probabilità è inferiore a cinquanta, allora voglio spawnare a sinistra e altrimenti voglio rispondere a
‫destra.
‫Quindi, se la probabilità è inferiore a cinquanta, voglio avere un set positivo e altrimenti voglio avere un offset
‫negativo.
‫Quindi la posizione di Sporn sarà il nuovo vettore tre, che è l'ultima posizione che X più l'offset e
‫l'ultima posizione Y.
‫Quindi suppongo che sia questo il motivo e infine, l'ultimo post ha pensato a Z più l'offset, quindi significa che sposterà il nostro o creerà una
‫posizione di spawn, che è un vettore tre, che assegnerà la posizione di spawn, che è un
‫vettore tre .
‫E lo useremo in seguito per generare il nostro oggetto di gioco, che è il nostro pezzo scritto o parte del rotolo.
‫Quindi altrimenti volevo essere la posizione di spawn uguale al nuovo vettore tre, ultimo post X meno l'offset.
‫Ultimo post Y e ultimo post Zeeb, più il.
‫Ora andiamo avanti e creiamo gli oggetti di gioco.
‫Chiamerò un G istanziato così abbiamo creato all'interno del nostro mondo unitario, scritto prefabbricato.
‫E in quale posizione mentre si trova nella posizione di spawn.
‫E quale quaternione vogliamo avere?
‫Usiamo quaternion dot yula, il che significa che lo ruotiamo con zero virgola quarantacinque zero perché anche i nostri oggetti di gioco
‫vengono ruotati.
‫E vogliamo che le nostre strade vengano ruotate e vogliamo che vengano ruotate anche qui.
‫E ora abbiamo bisogno dell'ultima posizione o dobbiamo impostare l'ultima posizione, che è Gedo, trasformare quella
‫posizione.
‫Perché questa è la nuova posizione, giusto?
‫Dobbiamo sapere qual è l'ultima posizione del nostro nuovo oggetto di gioco.
‫Quindi abbiamo iniziato con l'ultima posizione che abbiamo impostato manualmente, e ora la impostiamo sempre con quella
‫che viene creata.
‫Quindi la nuova parte di strada ha una posizione specifica e la salviamo nel nostro ultimo post variabile.
‫Tutto bene.
‫Quindi proviamolo.
‫Sono tornato a Unity e ho creato lo schermo diviso.
‫Ha senso qui perché quello che vogliamo vedere è ciò che sta accadendo nella scena.
‫Quindi fammi sbarazzarmi del suono molto velocemente, anche se è fantastico.
‫Ora, entriamo nel gioco e ora premiamo lo Spassky.
‫E come puoi vedere qui nella scena, il nostro mondo è stato creato ora in base ai nostri rubinetti.
‫Ma ovviamente vogliamo che ciò accada, non basandoci sul fatto che clicchiamo continuamente.
‫Vogliamo che accada in base alla posizione che abbiamo.
‫Ora torniamo allo scripting.
‫Quindi creiamolo automaticamente.
‫Usiamo il metodo di attivazione del vuoto privato qui.
‫E invochiamo semplicemente la ripetizione o chiamiamo il metodo revocare la ripetizione e cosa
‫vogliamo invocare ripetere bene e creare un nuovo metodo di parte di strada.
‫E vogliamo farlo dopo un secondo e vogliamo farlo ogni secondo.
‫Quindi proviamoci.
‫Salviamo il gioco e vediamo cosa succede ora.
‫Quindi proviamolo.
‫E possiamo vedere che ogni secondo viene creata una nuova parte di strada.
‫Va bene, ma non è esattamente quello che vogliamo.
‫Non vogliamo che venga creato ogni volta che siamo in una settimana perché ora ciò che potrebbe o potrebbe accadere è che non avviamo il
‫gioco ed è solo in esecuzione e creiamo ancora un mondo enorme ogni singolo secondo.
‫Ma quello che vogliamo fare è solo se il gioco è avviato.
‫Vogliamo creare quelli.
‫Quindi come lo facciamo?
‫Bene, qui non usiamo il metodo awake, ma ne usiamo uno diverso, che noi
‫o ne creiamo uno diverso, che chiamiamo start start building.
‫E non sarà privato, ma pubblico perché vogliamo accedervi dal nostro gestore di gioco e, naturalmente, non avremo più bisogno del metodo di
‫aggiornamento ora con il tasto premuto dove creiamo nuove parti di strada in
‫base alla nostra pressione del tasto .
‫Quindi entriamo nel gestore del gioco e andiamo al metodo di avvio del gioco, perché qui iniziamo il gioco e
‫questo è un punto perfetto per creare quegli oggetti.
‫Quindi troviamo un oggetto di tipo e troviamo l'oggetto strada.
‫E lì avevamo un metodo chiamato Start Building, ed è quello che vogliamo chiamare.
‫Tutto bene.
‫Andiamo avanti e testiamolo.
‫Quindi andiamo al nostro gioco e ottengo un'eccezione senza riferimento, e questo ha a che fare con il fatto che non ho più
‫un gestore di gioco.
‫Quindi diamo un'occhiata a come possiamo cambiarlo.
‫Creiamo un nuovo gioco su manager, se è così anche per te.
‫Creerò un gestore di gioco qui e lo dirigerò o lo ripristinerò prima
‫qui e trascinerò il mio gestore di gioco qui, perché per qualsiasi motivo è scomparso.
‫Quindi salverò la scena ora e prima del test.
‫E, naturalmente, dobbiamo assegnare il punteggio e il testo e il testo del punteggio più alto.
‫Quindi facciamolo e riproviamo.
‫E non dovremmo ottenere l'errore.
‫Tutto bene.
‫Quindi ora siamo di nuovo in carreggiata.
‫In qualche modo devo averlo cancellato.
‫OK, quindi ora proviamolo o proviamolo.
‫Iniziamo il gioco.
‫E come puoi vedere, il gioco è stato creato proceduralmente sul retro ed è un po' troppo lento.
‫Quindi siamo più veloci di quanto il nostro gioco crei quei pezzi.
‫Quindi creiamo nuove parti scritte un po' più velocemente.
‫A proposito, ad esempio, potremmo crearli ogni oh virgola cinque secondi.
‫Quindi facciamolo oh punto cinque F ora che dovrebbe risolvere il problema.
‫Penso che l'intervallo vada bene.
‫Diamo un'occhiata, avviamo il gioco e vediamo se crea abbastanza.
‫Quindi quello che non mi piace è che posso ancora vedere come produce quei pezzi.
‫Oh sono caduto.
‫Quindi ciò significa che come risolverlo è piuttosto semplice.
‫Potrei semplicemente sbarazzarci di questa parte qui e quella.
‫Beh, ho bisogno di quello.
‫Riportiamolo sulla nostra strada.
‫Potrei semplicemente duplicare quel pezzo qui e spostarlo ulteriormente.
‫In realtà, spostiamolo qui.
‫Duplicato di nuovo in modo da poter semplicemente rendere il mondo un po' più grande.
‫Quindi ora salviamolo.
‫E ora non dovrei più vedere dove è stato creato.
‫Quindi iniziamo il gioco.
‫E ora, ovviamente, abbiamo il problema qui che non abbiamo più il punto finale corretto perché
‫dov'era?
‫La nostra strada deve avere l'ultima posizione.
‫Quindi l'offset dell'ultima posizione e dovrebbe essere questo qui ora.
‫Quindi la nostra strada, parte 14 ora, è l'ultima.
‫Quindi cambiamo i valori qui e prendiamo anche il valore Z dalla nostra strada e inseriamolo qui.
‫OK, quindi ora proviamo di nuovo.
‫Vediamo dove vengono creati i pezzi.
‫E come puoi vedere, vengono creati nella posizione giusta.
‫Perfetto.
‫E ora non vedo dove viene creato il mio mondo e penso, OK, il punto cinque secondi dovrebbe andare bene
‫perché ora sta creando più velocemente di quanto possa camminare.
‫Ok va bene.
‫Ora aggiungiamo di nuovo i cristalli, perché non abbiamo cristalli.
‫Ora cosa vogliamo avere i nostri cristalli.
‫Quindi andiamo al nostro script scritto.
‫E qui, nella parte di creazione nuova, vogliamo avere un cristallo scritto ogni quinto passo o ogni quinto.
‫Quindi creiamo un conteggio delle strade privato e, che è zero, e aumentiamo il conteggio delle strade per ogni strada
‫che creiamo.
‫Quindi la strada conta più più.
‫E poi controlliamo.
‫Se il conteggio delle strade è diviso per cinque, quindi il modulo cinque è uguale a zero, allora vogliamo attivare il nostro cristallo.
‫Quindi g trasforma il pensiero porta il bambino nella posizione zero.
‫Quindi aggiungici, prendi l'oggetto di gioco e impostalo su attivo.
‫Vero.
‫Quindi va bene che ogni quinta strada avrà un cristallo attivo ora.
‫Tutto bene.
‫E ora diciamo lo script, torniamo a Unity e vediamo se funziona.
‫Quindi i pezzi iniziali non avranno cristalli.
‫Quindi quelli che abbiamo creato manualmente non avranno alcun cristallo.
‫Quindi il giocatore deve superare una certa parte qui prima di ottenere i cristalli.
‫Oh, ora, abbiamo un piccolo problema qui, però.
‫Come puoi vedere, l'animazione non funziona più correttamente.
‫E forse puoi indovinare perché è così.
‫Beh, questo ha a che fare con il fatto che a un certo punto il nostro giocatore era in aria o ha toccato l'aria solo per
‫una frazione di secondo.
‫Ed è stato allora che ha iniziato a non muoversi più correttamente o due.
‫Bene, non solo corretto più, quindi risolviamolo.
‫Possiamo risolverlo in due modi.
‫Uno potrebbe essere che a un certo punto ci sia dello spazio in mezzo in modo che i blocchi non siano perfettamente allineati
‫tra loro.
‫Quindi quale potrebbe essere una delle ragioni per cui potrebbe esserne un altro o un
‫altro modo per risolverlo potrebbe essere andare all'animazione del nostro personaggio e aggiungere una nuova transizione, fare la transizione dalla caduta
‫alla corsa, e quella si baserà su una condizione che non abbiamo creato.
‫Quindi creiamo un nuovo parametro e chiamiamo quel trigger.
‫Non cadere più, tuttavia, non sarebbe la soluzione perfetta, quindi la soluzione migliore sarebbe davvero controllare se ci
‫sono spazi vuoti tra i miei pezzi qui.
‫Ma sarei un'opzione per farlo, non cadere più.
‫Quindi facciamolo.
‫Torniamo al nostro script qui e possiamo andare qui altro nel nostro controller grafico e nel metodo di aggiornamento.
‫Potremmo dire che se la rifusione non è più in questa posizione, potremmo andare avanti e impostare
‫il grilletto su non cade più.
‫Penso che sia così che lo chiamo.
‫Quindi diamo un'occhiata.
‫Trasformiamolo in non cadere più.
‫OK?
‫Quello era il termine corretto, quindi torniamo all'unità e cambiamolo in non cadere più.
‫E ora vediamo se il problema è risolto.
‫Quindi giochiamo qui.
‫Possiamo andare alla nostra scena e forse trovare una visione migliore su cose del genere.
‫E ora andiamo avanti e iniziamo il gioco.
‫Quindi ora raccogliamone un po'.
‫Come puoi vedere, stava cadendo lì.
‫C'era un piccolo divario ed era un divario dal nostro inizio.
‫Bene, il punto in cui ho creato il campo manualmente e in cui abbiamo iniziato a farlo proceduralmente.
‫Quindi deve esserci stato un piccolo divario nel mezzo.
‫Quindi l'unica o la soluzione che ti ho appena mostrato è solo una patch, una piccola patch.
‫Non dovresti davvero usare quelli quando vai nella vita.
‫Quindi dovresti trovare un piccolo spazio vuoto che abbiamo lì.
‫Ma penso che sia troppo noioso mostrartelo in dettaglio.
‫Quindi ora diamo uno sguardo al prossimo capitolo.
‫Oh, quello me lo ero perso.
‫Quindi, come puoi vedere, il nostro gioco fa quello che dovrebbe.
‫Abbiamo una partita finita?
‫Direi che abbiamo il suono.
‫Possiamo raccogliere quei punti.
‫Bene, abbiamo un punteggio alto e così via.
‫E penso che la cosa più importante sia il nostro mondo procedurale.
‫Ora, la sfida potrebbe essere un po' più alta.
‫Certo, potresti cambiare la velocità del giocatore passo dopo passo.
‫Quindi, ovviamente, dovresti anche cambiare il tempo con cui creiamo la nostra mappa procedurale e che
‫siamo fantastici.
‫Quindi penso che sia abbastanza per te avermi visto collegare ventisei punti e il prossimo capitolo creeremo
‫il prossimo gioco.
‫Quindi spero che tu abbia ragione e spero che tu abbia preso questo gioco e l'abbia reso ancora migliore.
‫Quindi lo rendi ancora migliore.
‫Quindi, per favore, vai avanti e aggiungi funzionalità che ritieni possano migliorare l'aspetto di questo gioco o
‫renderlo semplicemente fantastico.
‫Quindi, per favore, fallo e condividilo con noi.
‫Tutto bene.
‫Allora ci vediamo al prossimo capitolo.