‫Hallo en welkom.
‫In deze lezing gaan we zowel roterende als bewegende platforms maken.
‫We gaan dit doen door meer te weten te komen over het F-rotatortype in C++, zodat we iets meer
‫van een ander element aan onze puzzel kunnen toevoegen.
‫Laten we erin duiken en ontdekken hoe dit werkt.
‫Laten we het dus hebben over het invullen van onze roteerplatformfunctie.
‫Dus om rotatie te doen, lijkt het erg op de manier waarop we locatie doen en we hebben vergelijkbare
‫functies.
‫We kunnen bellen in plaats van bellen, de locatie van de acteur krijgen, we kunnen bellen, in plaats daarvan acteursrotatie krijgen.
‫En als ik haakjes aan het einde van deze regel zet en gewoon over de
‫functie zweef, dan laat Visual Studio IntelliSense ons zien dat de geretourneerde waarde hiervan een F-rotator is.
‫We hebben de F-vector gebruikt bij het werken met locaties en we hebben in de vorige secties over
‫rotators gesproken.
‫Laten we dus eens kijken hoe we deze F-rotator in een lokale variabele kunnen plaatsen.
‫Dus het type wordt F rotator en we gaan dit de huidige rotatie noemen die gelijk is aan de get actor rotatie, zet
‫een puntkomma aan het einde van de regel.
‫Ik ga ook de logverklaring verwijderen omdat we die niet langer nodig hebben.
‫En wat we dan willen doen is in wezen precies hetzelfde als wat we
‫hebben gedaan met de platformsnelheid, wat een soort rotatiesnelheid is vermenigvuldigd met de deltatijd toegevoegd aan de huidige rotatie.
‫Dus wat moet die rotatiesnelheid zijn?
‫Welnu, dat is waar we naar het headerbestand willen gaan en een nieuwe U-eigenschap willen toevoegen.
‫Dus ik ga het toevoegen onder de verplaatsingsafstand en ik zal een U-eigenschap overal laten bewerken en het dan een categorie geven
‫die gelijk is aan deze keer. Ik ga het rotatie noemen en ik ga de
‫categorienaam van bewegend platform naar bewegend in beide gevallen.
‫We krijgen dus een categorie voor verplaatsen, een categorie voor rotatie.
‫Dan gaan we onder de eigenschap een F-rotator plaatsen met de naam rotatiesnelheid en we gaan het hier geen standaardwaarde
‫geven omdat ik standaard niet wil dat een van onze platforms draait.
‫Dus de standaardwaarde wordt 000, en dat is precies wat we nodig hebben.
‫Dus ik ga hier een puntkomma aan het einde van de regel plaatsen en nu
‫kunnen we teruggaan naar het C++-bestand en die lidvariabele gebruiken in onze roteerplatformfunctie.
‫Dus wat we willen doen is huidige rotatie gelijk aan de huidige rotatie plus rotatiesnelheid vermenigvuldigd met Delta-tijd en een puntkomma
‫aan het einde van de regel plaatsen.
‫En nu is het laatste stukje van de puzzel om onze acteur op die nieuwe rotatie te zetten.
‫Dus precies zoals je zou verwachten, misschien een kleine mini-uitdaging voor jou, in feite, is hoe zou je verder
‫gaan en dat zelf doen?
‫Welnu, wat we zouden gebruiken is de rotatiefunctie van de set-acteur en we zouden een argument van huidige rotatie doorgeven
‫en een puntkomma aan het einde van de regel plaatsen.
‫Nu werkt het helaas niet zo eenvoudig als dit.
‫Het is me opgevallen, hebben sommige studenten opgemerkt in de onderwijsassistent.
‫Dan, heel erg bedankt, heeft erop gewezen dat alleen het optellen van rotaties op deze manier niet altijd
‫zal werken vanwege enkele van de complicaties rond rotaties die om zichzelf heen wikkelen.
‫Als je helemaal naar -90 graden rotatie gaat, moet je op een gegeven moment overschakelen naar plus
‫90 graden rotatie, enzovoort, enzovoort.
‫Dus een betere manier om dit te omzeilen, in plaats van de actieve rotatie in te stellen, is om lokale rotatie toe te voegen aan
‫de actor.
‫En je kunt hier opmerken dat er ook een paar lokale transformaties van acteurs zijn en lokale offset die voor
‫locatie zijn.
‫Dus je kunt dat ook gebruiken in plaats van een locatie toe te voegen.
‫Er zijn echter niet dezelfde problemen die we zullen tegenkomen in de edge-cases rond
‫rotatie.
‫Dus wat ik je zou aanraden is om hier lokale rotatie van de actor toe te voegen en dan
‫voer je gewoon de rotatiesnelheid in vermenigvuldigd met de Delta-tijd in en het doet de rest van deze code automatisch voor je.
‫Dus we kunnen gewoon doorgaan en die lijnen wegwerken.
‫En je hebt een directe toevoeging aan de lokale rotatie die hier gaande is, en je kunt dit ook verwijderen
‫door de huidige rotatie te krijgen, omdat we dat ook niet langer nodig hebben.
‫Dus laten we naar de editor gaan en op de compileerknop drukken.
‫En als dat klaar is, sluit je het logboek.
‫Laten we een van de platforms selecteren in het niveau dat ze zullen doen en de categorieën bekijken.
‫Dus we hebben beweging en we hebben rotatie en we hebben dan de rotatiesnelheid.
‫Dus ik wil dit platform rond zijn Z-as draaien met waarschijnlijk laten we zeggen ongeveer 90 graden per seconde.
‫Het duurt dus 4 seconden om een volledige rotatie te doen.
‫Laten we doorgaan en op play drukken.
‫En daar ga je.
‫We hebben een roterend en bewegend platform.
‫Dus in tegenstelling tot het mechanisme van het bewegende platform, hoeven we ons geen zorgen te maken dat ons roterende platform daadwerkelijk
‫heen en weer gaat.
‫Als je wilt dat het dat doet, is dat een mogelijke extensie die je kunt bedenken.
‫Maar voor mij is dat genoeg, want we willen gewoon dat deze dingen in dezelfde richting
‫blijven draaien.
‫Dus laat me de rotatie van dit specifieke platform verwijderen omdat we niet willen dat dit
‫platform roteert.
‫Dus ik daag je graag uit om een piepend roterend platform te maken, eigenlijk nog een andere variant voor ons om te
‫gebruiken en een geschikt gaas te vinden.
‫Ik zou gaan voor iets dat vaag cirkelvormig is, zodat het logisch is als een roterend platform
‫en het een standaard rotatiesnelheid geeft en het in het niveau plaatst om een beetje een draaiende platformpuzzel te creëren
‫waar je overheen kunt komen.
‫Pauzeer de video en probeer het.
‫Oké.
‫Welkom terug.
‫Dus we gaan verder in onze inhoudlade en gaan op zoek naar de C++-klassen, Obstacle Assault en klik met de
‫rechtermuisknop op het bewegende platform om een blauwdrukklasse-apparaat te maken dat hiervan is afgeleid.
‫We gaan het het BP-onderstrepingsrotatieplatform noemen en we gaan het in de route van inhoud
‫plaatsen en een blauwdrukklasse maken.
‫Zodra de editor verschijnt, laten we deze koppelen aan ons hoofdvenster.
‫Ik ga mijn inhoudbrowser sluiten die elke keer lijkt te willen verschijnen, en ik
‫ga naar ons hoofdniveau en ga naar het eiland met al onze testmiddelen op rechts klikken.
‫Ga hierheen en laten we eens kijken of er iets is dat er goed uitziet.
‫Ik hou van het uiterlijk van deze platforms hier.
‫Als ik er met de rechtermuisknop op klik of er gewoon op klik, dan is de mesh die hier in de statische
‫mesh wordt gebruikt SM-platform A. Dus laten we daar naar zoeken.
‫Laten we naar onze blauwdrukken gaan, de inhoud openen, tekenen, naar alles gaan en dan zoeken naar platform
‫underscore M, underscore A en dan hebben we de mesh, en dat is deze hier.
‫Tweede voor mij.
‫Ik ga het naar onze viewport slepen om ons platform te hebben.
‫Laten we nu eens kijken waar dit gecentreerd is.
‫Is het gecentreerd in het midden?
‫Ja, dat is het, wat goed en belangrijk is omdat we het nodig hebben om rond het midden te draaien.
‫Anders gaat dit cirkelvormige platform er een beetje vreemd uitzien.
‫We kunnen het ook een beetje opschalen in de x- en Y-dimensies om dit platform een beetje groter te maken en we kunnen naar
‫de standaardinstellingen van de klas gaan om elke platformsnelheid te verwijderen omdat we niet willen dat het beweegt en de verplaatsingsafstand
‫instellen potentieel op nul zetten en dan naar het rotatiegedeelte kijken en dat ongeveer goed instellen,
‫we probeerden 90 graden per seconde en dat leek redelijk.
‫Dus laten we doorgaan en dit roterende platform redden.
‫We gaan naar ons hoofdniveau en klik dan met de rechtermuisknop op het kleine drijvende eiland waar we ons niveau hebben om onze puzzel
‫op te zetten, klik, ga hierheen.
‫Dan wil ik op dit eiland onze nieuwe blauwdruk neerzetten.
‫Dus laten we de zoekopdracht annuleren, naar de hoofdmap van de inhoud gaan en ons roterende platform vinden en het in het niveau
‫plaatsen.
‫En meteen zie ik dat ik het eigenlijk een beetje groter wil hebben.
‫Dus laten we doorgaan en het opschalen.
‫Nog een paar eenheden, misschien drie keer zou goed moeten zijn.
‫Laten we gaan kijken.
‫Nu, ik denk dat het nog groter zou kunnen zijn, dus ik ga een beetje meer opschalen, zodat het in wezen in
‫de X en Y vijf keer groter is dan het oorspronkelijk was.
‫Oké, dat is een mooie brede roterende schijf en het kan voor ons een hele uitdaging zijn om over te steken.
‫Dus ik ga deze dupliceren met alt en sleep om er een paar over het platform te maken en probeer
‫ze op de juiste manier te plaatsen en dan nog een paar alt-slepen.
‫Zodat we hier een leuke set puzzels hebben om te proberen over te komen.
‫Dus wiebelde ze gewoon een beetje totdat ik ze vrijwel van rand tot rand kon krijgen.
‫En hier is waar het hebben van een spelmodus echt helpt, omdat we met de rechtermuisknop in de buurt van de
‫platforms kunnen klikken en vanaf hier kunnen klikken, en hier zijn al onze roterende platforms waarop we kunnen stappen.
‫En het is nu een beetje een uitdaging voor ons om onze weg over deze bewegende platforms leuk en gemakkelijk te vinden.
‫Nu is er een dode zone in het midden die we zouden kunnen proberen uit te
‫wissen, maar het is eigenlijk best moeilijk om in de dode zone te komen en te blijven, dus ik ga niet proberen om daar iets specifieks
‫in te stoppen om dat te stoppen.
‫Maar je kunt zien, daar ga je.
‫Het is een haalbare uitdaging die we kunnen aangaan, maar het is een beetje lastig en dat is leuk.
‫Goed spul.
‫Dus in deze lezing hebben we gezien hoe we roterende platforms kunnen maken door te leren over een nieuw type, de
‫F rotator, en hoe we deze kunnen gebruiken om de rotatie van onze acteurs in te stellen.
‫Ik zie je in de volgende lezing.