‫Als er één ding is dat het allerbelangrijkste is voor een oneindige hardloper, dan is het oneindig.
‫En om een oneindige wereld te creëren die we nodig hebben, en procedurele creatie, moeten we die procedureel creëren, wat
‫betekent dat we het via code moeten doen.
‫Dus we willen geen enorme wereld creëren van, ik weet het niet, een miljard verschillende stukken van onze rote elementen
‫of oude onderdelen.
‫Dat willen we programmatisch doen en dat kunnen we procedureel.
‫Dus wat ik nu wil doen is, allereerst, ik wil mijn kristal opzetten en ik wil het kristal veranderen, niet om ergens
‫ter wereld te zijn of waar dan ook waar ik het heb gepositioneerd.
‫Ik wil dat het op een weggedeelte komt.
‫Dus laten we ons kristal positioneren.
‫Deze hier.
‫Laten we het op ons weggedeelte plaatsen.
‫Dus laten we Barway van alle andere kristallen ontdoen.
‫Verwijder ook, laten we onze wegdelen wegdoen, ook verwijderen.
‫En nu als regisseur Crystal op ons spel.
‫Dus laten we zeggen dat hier ongeveer in een goede positie is.
‫Eens kijken of het er gewoon bovenop zit.
‫Gewoon bovenop, ja, het is goed.
‫Dus dat is goed en ik wil het kristal op het weggedeelte plaatsen en nu ga ik het kristal
‫deactiveren.
‫Dus nu, zoals je kunt zien, is het niet meer beschikbaar.
‫We zouden het moeten activeren.
‫En nu wordt dat weggedeelte een nieuwe prefab.
‫Dus laten we dat weggedeelte eens bijhouden in onze prefab folder.
‫En we willen later procedureel meerdere van die wegdelen maken.
‫Oke.
‫Voordat we dat doen, is er een basisonderdeel van ons spel dat altijd hetzelfde zal zijn.
‫Dus dat wordt op een bepaalde manier onze weg.
‫Dus laten we trouwens ook de kristallen wegdoen.
‫En nu kunnen we het kristal dupliceren en laten we het dienovereenkomstig verplaatsen.
‫Dus de eerste paar stappen zijn altijd hetzelfde, en dan gaan we naar de site.
‫Dus dit stuk zal altijd hetzelfde zijn, dus laten we eens naar het spel kijken.
‫Ja, het is altijd hetzelfde.
‫Ze bewegen altijd zo.
‫En de volgende.
‫Oke.
‫Dat is dus het begin van onze kaart.
‫En nu willen we doorgaan en het procedureel maken, zodat de stukken automatisch en
‫efficiënt worden gemaakt.
‫En om dat te doen, laten we een nieuw script voor onze weg maken.
‫Dus laten we naar onze weg gaan bij component en nieuw script en laten we die ene weg noemen.
‫Laten we die nu eens openen.
‫En hier hebben we onze prefab repat nodig.
‫Dus openbaar spel, objectweg prefab.
‫Laten we dat heel snel in eenheid toewijzen, zodat ons roadscript een prefab-weg nodig heeft.
‫Laten we het script trouwens volgen in onze map scripts.
‫Laten we nu naar onze gaan.
‫Road en leidt nu het road-script of road part game-object.
‫Oké, dat we bijna geen prefab meer hebben.
‫Oke.
‫Vervolgens zullen we moeten weten vanaf welk punt willen we onze wereld geschapen hebben?
‫Dus ik heb hier een pijl.
‫Het onbewerkte deel 11 is niet nodig, dus dat is te weinig.
‫Dus vanaf de weg wil ik doorgaan en nieuwe wegdelen maken.
‫Dus vanaf dit punt.
‫Dus ik moet positioneren vanaf wanneer ik nieuwe wegdelen wil maken, de positie is de positie of
‫de transformatiepositie van ons wegdeel.
‫En als we ernaar kijken, het is op de positie nul nul zeven komma negen.
‫Oké, dus laten we die positie eens bekijken.
‫Ik sleep het terug in ons roadscript.
‫Ik wil die positie hebben.
‫Dus ik ga een nieuwe openbare vector maken drie laatste post.
‫Dus ik ga het noemen en ik ga het hier optellen tot nul nul zeven komma negen of negen.
‫Dat was de positie van ons laatste wegdeel.
‫Wat we moeten weten, is hoeveel hebben we nodig om een object te verplaatsen?
‫Dus dit weggedeelte, laten we het buiten plaatsen en laten we dat nu verplaatsen of die wegkracht dupliceren
‫en verplaatsen met controle en shift.
‫En dan kunnen we zien dat het per heel punt beweegt, zeven oh zeven.
‫Dus dat is ongeveer de breedte van of de verandering van de positie van ons blok.
‫En het moet ook de breedte zijn.
‫Oke.
‫Dus laten we teruggaan naar onze roadscripts hier.
‫We zullen die compensatie moeten weten.
‫Dus laten we een nieuwe openbare float-offset maken en het wordt punt zeven oh zeven genoemd als een float.
‫En laten we nu een methode maken.
‫Ik ga af van de startmethode.
‫Ik ga een nieuwe methode maken, public void, een nieuw weggedeelte maken.
‫En ik ga voor nu, gewoon de achterstand debuggen, een nieuw weggedeelte maken.
‫En binnen de update-methode ga ik controleren of de gebruiker op een knop drukt.
‫Dus voer die sleutel in.
‫En welke code wil ik.
‫Sleutelcode puntruimte.
‫Dus telkens als de speler op de spatie drukt, wil ik een nieuw weggedeelte maken.
‫Laten we daar nu mee aan de slag gaan.
‫Laten we die methode dus nog verder ontwikkelen.
‫Maak dus een nieuw weggedeelte aan.
‫Wat hebben we hier nodig?
‫We moeten positie spawnen, wat een vector drie is, dus laten we het geen spon post vector drie nul noemen, wat
‫de positie nul nul nul is.
‫Dus dat is een tweede positie van waaruit we beginnen.
‫Dan willen we een kans hebben, een variabele met een willekeurig bereik tussen nul en honderd.
‫En als de kans kleiner is dan vijftig, dan wil ik links spawnen en anders wil ik rechts
‫reageren.
‫Dus als de kans kleiner is dan vijftig, wil ik een positieve set hebben en anders wil ik een negatieve offset
‫hebben.
‫Dus Sporn-positie wordt nieuwe vector drie, wat de laatste positie is die X plus de offset en de
‫laatste Y-positie is.
‫Dus ik veronderstel dat dat de reden is en dan tenslotte, dacht de laatste post Z plus de offset, dus dat betekent dat het onze zal verplaatsen of dat
‫het een spawn-positie zal creëren, wat een vector drie is, die de spawn-positie zal toewijzen, wat een vector
‫drie is .
‫En we zullen dat later gebruiken om ons spelobject te spawnen, dat is ons geschreven stuk of rolgedeelte.
‫Dus anders wilde ik de spawn-positie gelijk zijn aan nieuwe vector drie, laatste post X minus de offset.
‫Laatste bericht Y en laatste bericht Zeeb, plus de.
‫Laten we nu doorgaan en de game-objecten maken.
‫Ik ga een G Instantiated noemen, zodat we binnen onze eenheidswereld hebben gecreëerd, prefab geschreven.
‫En op welke positie terwijl op de spawn positie.
‫En welk quaternion willen we hebben?
‫We gebruiken quaternion dot yula, wat betekent dat we het roteren met nulpunt vijfenveertig nul omdat onze game-objecten ook
‫worden geroteerd.
‫En we willen dat onze wegen worden gedraaid en we willen dat ze hier ook worden gedraaid.
‫En nu hebben we de laatste positie nodig of moeten we de laatste positie instellen, dat is Gedo, die
‫positie transformeren.
‫Want dat is de nieuwe functie, toch?
‫We moeten weten wat de laatste positie is van ons nieuwe spelobject.
‫We zijn dus begonnen met de laatste positie die we handmatig hebben ingesteld, en nu stellen we deze altijd in met
‫degene die is gemaakt.
‫Het nieuwe weggedeelte heeft dus een specifieke positie en die slaan we op in onze laatste postvariabele.
‫Oke.
‫Dus laten we dat proberen.
‫Ik ging terug naar Unity en maakte het gesplitste scherm.
‫Logisch hier, want wat we willen zien is wat er in de scene gebeurt.
‫Dus laat me het geluid heel snel wegwerken, ook al is het geweldig.
‫Laten we nu naar het spel gaan en laten we nu op de Spassky drukken.
‫En zoals je hier in de scene kunt zien, wordt onze wereld nu gecreëerd op basis van onze kranen.
‫Maar we willen natuurlijk dat dat gebeurt, niet op basis van ons voortdurend klikken.
‫We willen dat het gebeurt op basis van de positie die we hebben.
‫Laten we nu teruggaan naar scripting.
‫Laten we dit dus automatisch aanmaken.
‫Laten we hier de private void wake-methode gebruiken.
‫En laten we gewoon herhalen aanroepen of laten we de methode herhalen herhalen noemen
‫en wat willen we herhalen goed aanroepen en een nieuwe wegdeelmethode maken.
‫En dat willen we na één seconde doen en dat willen we elke seconde doen.
‫Dus laten we dat gewoon proberen.
‫Laten we het spel opslaan en kijken wat er nu gebeurt.
‫Dus laten we dat proberen.
‫En we kunnen zien dat er elke seconde een nieuw weggedeelte ontstaat.
‫Oké, maar dat is niet precies wat we willen.
‫We willen niet dat het wordt gemaakt wanneer we een week hebben, want wat het nu kan of zou kunnen gebeuren, is dat we het spel
‫niet starten en het gewoon draait en we nog steeds elke seconde een enorme wereld creëren.
‫Maar wat we willen doen is alleen als het spel wordt gestart.
‫Die willen we creëren.
‫Dus hoe doen we dat?
‫Welnu, we gebruiken hier niet de wakker-methode, maar we gebruiken een andere, die we
‫of we een andere maken, die we beginnen met bouwen noemen.
‫En het zal niet privé zijn, maar openbaar omdat we het willen openen vanuit onze gamemanager en natuurlijk hebben we de updatemethode nu
‫niet meer nodig met de sleutel naar beneden, waar we nieuwe wegdelen
‫maken op basis van onze toetsaanslag .
‫Dus laten we naar de gamemanager gaan en naar de start game-methode gaan, want hier starten we de game en
‫dat is een perfect punt om die objecten te maken.
‫Dus laten we een object van het type zoeken en laten we het wegobject zoeken.
‫En daar hadden we een methode genaamd Start Building, en dat is degene die we willen noemen.
‫Oke.
‫Laten we doorgaan en dat testen.
‫Dus laten we naar onze game gaan en ik krijg een uitzondering zonder referentie, en dat heeft te maken met het feit dat ik
‫geen gamemanager meer heb.
‫Dus laten we eens kijken hoe we dat kunnen veranderen.
‫Laten we een nieuw spel maken op manager, als dat ook voor jou het geval is.
‫Ik ga hier een gamemanager maken en ik ga regisseren of ik reset die eerst
‫hier en sleep mijn gamemanager hierheen, want om wat voor reden dan ook, hij is verdwenen.
‫Dus ik ga de scène nu opslaan en voordat we testen.
‫En natuurlijk moeten we de score en tekst en de highscore-tekst toewijzen.
‫Dus laten we dat doen en het opnieuw proberen.
‫En we zouden de fout niet moeten krijgen.
‫Oke.
‫Dus nu zijn we weer op de goede weg.
‫Ik moet het op de een of andere manier hebben verwijderd.
‫Oké, laten we het nu proberen of laten we het proberen.
‫Laten we beginnen met het spel.
‫En zoals je kunt zien, is het spel daar aan de achterkant procedureel gemaakt en is het een beetje te traag.
‫Dus we zijn sneller dan ons spel die stukken maakt.
‫Dus laten we nieuwe geschreven delen een beetje sneller maken.
‫Trouwens, we zouden ze bijvoorbeeld vijf seconden per oh-punt kunnen maken.
‫Dus laten we dat doen oh punt vijf F nu zou dat probleem moeten oplossen.
‫Ik denk dat de interval prima is.
‫Laten we eens kijken, laten we het spel starten en kijken of het genoeg creëert.
‫Dus wat ik echter niet leuk vind, is dat ik nog steeds kan zien hoe het die stukken produceert.
‫O ik ben gevallen.
‫Dus dat betekent dat hoe het kan worden opgelost vrij eenvoudig is.
‫Ik zou gewoon dit deel hier en dat kunnen weglaten.
‫Nou, die heb ik nodig.
‫Laten we het terugbrengen naar onze weg.
‫Ik zou dat stuk eenvoudig hier kunnen dupliceren en verder kunnen verplaatsen.
‫Laten we het eigenlijk hierheen verplaatsen.
‫Opnieuw gedupliceerd zodat ik de wereld gewoon een beetje groter kon maken.
‫Dus laten we dat nu bewaren.
‫En nu zou ik niet meer moeten zien waar het is gemaakt.
‫Dus laten we beginnen met het spel.
‫En nu hebben we natuurlijk het probleem dat we niet meer het juiste eindpunt hebben, want waar was
‫het?
‫Onze weg moet de laatste positie hebben.
‫Dus de offset van de laatste positie en deze zou nu hier moeten zijn.
‫Dus onze weg, deel 14 is nu de laatste.
‫Dus laten we de waarden hier veranderen en ook de Z-waarde van onze weg nemen en deze hier invoeren.
‫Oké, laten we het nu opnieuw proberen.
‫Laten we eens kijken waar de stukken zijn gemaakt.
‫En zoals je kunt zien, worden ze op de juiste positie gemaakt.
‫Perfect.
‫En nu zie ik niet waar mijn wereld is gecreëerd en ik denk, oké, punt vijf seconden zou goed moeten
‫zijn, want nu creëert het sneller dan ik kan lopen.
‫Oke dat is goed.
‫Laten we nu de kristallen opnieuw toevoegen, want we hebben geen kristallen.
‫Wat willen we nu onze kristallen hebben.
‫Dus laten we naar ons geschreven script gaan.
‫En hier in het deel 'Nieuw maken' willen we elke vijfde stap of elke vijfde een kristal laten schrijven.
‫Laten we dus een privé- en wegentelling maken, die nul is, en laten we de wegentelling verhogen voor elke weg die
‫we maken.
‫Dus wegentelling plus plus.
‫En dan controleren we.
‫Als het aantal wegen wordt gedeeld door vijf, dus modulo vijf is gelijk aan nul, dan willen we ons kristal activeren.
‫Dus g transform gedachte krijg kind op de nulpositie.
‫Dus voeg onszelf toe, pak het spelobject en zet het op actief.
‫Waar.
‫Dus dat is voldoende als elke vijfde weg nu een actief kristal heeft.
‫Oke.
‫En laten we nu het script zeggen, laten we teruggaan naar Unity en kijken of dat werkt.
‫De startstukken zullen dus geen kristallen hebben.
‫Dus degenen die we handmatig hebben gemaakt, hebben geen kristallen.
‫De speler moet hier dus door een bepaald deel komen voordat hij kristallen krijgt.
‫Oh, nu hebben we echter een klein probleempje.
‫Zoals je kunt zien, werkt de animatie niet meer correct.
‫En misschien kun je raden waarom dat is.
‫Nou, dat heeft te maken met het feit dat onze speler op een gegeven moment in de lucht was of de lucht slechts een fractie van
‫een seconde heeft aangeraakt.
‫En toen begon hij niet meer correct te bewegen of twee.
‫Nou, niet alleen meer correct gemaakt, dus laten we dat oplossen.
‫Dat kunnen we op twee manieren oplossen.
‫Het kan zijn dat er op een gegeven moment wat ruimte tussen zit waardoor de blokken niet perfect op
‫elkaar aansluiten.
‫Dus wat zou dan een van de redenen kunnen zijn waarom een andere zou kunnen zijn of een andere
‫manier om het op te lossen, zou kunnen zijn om naar onze karakteranimatie te gaan en een nieuwe overgang toe te voegen, de overgang te maken
‫van vallen naar rennen, en die zal gebaseerd zijn op een voorwaarde die we hebben niet gecreëerd.
‫Laten we dus een nieuwe parameter maken en die trigger noemen.
‫Niet meer vallen, dat zou echter niet de perfecte oplossing zijn, dus de betere oplossing zou zijn om te
‫controleren of er hier gaten tussen mijn stukken zitten.
‫Maar ik zou een optie zijn om dat te doen, niet meer vallen.
‫Dus laten we dat doen.
‫Laten we hier teruggaan naar ons script en we kunnen hier anders gaan in onze kaartcontroller en de updatemethode.
‫We zouden kunnen zeggen dat als de herschikking zich niet meer op deze positie bevindt, we kunnen doorgaan en
‫de trigger instellen op niet meer vallen.
‫Ik denk dat ik het zo noem.
‫Dus laten we het eens bekijken.
‫Laten we dat veranderen in niet meer vallen.
‫OKE?
‫Dat was de juiste term, dus laten we teruggaan naar eenheid en dat veranderen in niet meer vallen.
‫En laten we nu eens kijken of dat probleem is opgelost.
‫Dus laten we het spel hier spelen.
‫We kunnen naar ons toneel gaan en misschien een beter zicht op dat soort dingen vinden.
‫En laten we nu doorgaan en het spel starten.
‫Dus laten we er nu een paar verzamelen.
‫Zoals je kunt zien, viel hij daar.
‫Er was een klein gat en het was een gat vanaf onze start.
‫Welnu, het punt waarop ik het veld handmatig heb gemaakt en waar we procedureel zijn begonnen.
‫Er moet dus een klein gaatje tussenin zijn geweest.
‫Dus de ene of de oplossing die ik je zojuist heb laten zien, is slechts een patch, een kleine patch.
‫Die moet je eigenlijk niet gebruiken als je gaat leven.
‫Dus je zou een kleine opening moeten vinden die we daar hebben.
‫Maar ik vind het te saai om je dat in detail te laten zien.
‫Dus laten we nu naar het volgende hoofdstuk kijken.
‫O, die heb ik gemist.
‫Dus zoals je kunt zien, doet ons spel wat het moet doen.
‫Hebben we een voltooid spel?
‫Ik zou zeggen dat we het geluid hebben.
‫Die punten kunnen we verzamelen.
‫Nou, we hebben een hoge score, enzovoort.
‫En ik denk dat het belangrijkste onze procedurele wereld is.
‫Nu zou de uitdaging een beetje groter kunnen zijn.
‫Natuurlijk kunt u de snelheid van de speler stap voor stap wijzigen.
‫Dan zou je natuurlijk ook het tempo moeten veranderen waarmee we onze procedurele kaart maken en dat we
‫geweldig zijn.
‫Dus ik denk dat het genoeg is dat je me zesentwintig punten hebt zien verbinden en in het volgende hoofdstuk gaan we
‫het volgende spel maken.
‫Dus ik hoop dat je gelijk hebt en ik hoop dat je dit spel hebt genomen en het nog beter hebt gemaakt.
‫Zo maak je het nog beter.
‫Dus ga je gang en voeg functies toe waarvan je denkt dat deze game er beter uit zouden zien of deze game
‫gewoon geweldig zouden maken.
‫Dus ga je gang en doe dat en deel het met ons.
‫Oke.
‫Dus tot ziens in het volgende hoofdstuk.