‫Hallo en welkom.
‫In deze lezing gaan we kijken naar vectoren en in het algemeen meer gecompliceerde dingen zoals structs in
‫C++ en hoe we toegang kunnen krijgen tot de afzonderlijke delen om deze zowel in te stellen als uit een struct te halen.
‫Laten we erin duiken.
‫We hebben dus geleerd om met basisgegevenstypen in C++ om te gaan en variabelen te creëren en eraan toe te wijzen en er zelfs
‫wat elementaire rekenkunde mee te doen.
‫Maar hoe zit het als we meer gecompliceerde typen zoals vectoren en transformaties willen aanpakken?
‫Nou, het proces is eigenlijk erg vergelijkbaar.
‫Laten we beginnen met het wissen van een deel van de testcode die we al hebben.
‫Ik ga al mijn eigenschappen verwijderen.
‫Voor mij is dat regel 26 tot 51.
‫En ik ga ook naar het C++-bestand en verwijder regel 19 tot 23, waar ik al het werk doe met
‫de variabelen die ik zojuist heb verwijderd.
‫Dus nu is Begin Play helemaal leeg en zijn we weer terug bij af.
‫Dus wat ik nu wil doen, is een nieuwe eigenschap toevoegen.
‫Dus alle hoofdletters kunnen weer ergens worden bewerkt en ik ga dit het type F-vector geven, let op de hoofdletter F, hoofdletter V en dit
‫is hoe we omgaan met de vectoren die we hebben behandeld in Blueprint zijn dezelfde vectoren
‫onder de oppervlak, maar dit is hoe we het in C++ typen.
‫De F die eraan voorafgaat, laat ons gewoon weten dat dit een structuur is op dezelfde manier als de A die voorafgaat aan
‫een bewegend platform.
‫Laat ons weten dat dat een acteur is.
‫Dat is geen C++ ding.
‫Dat is een onwerkelijke naamgevingsconventie voor het benoemen van de verschillende klassen, structs en typen.
‫Dus wat we dan gaan doen is deze variabele hun naam geven.
‫En dit werkt precies hetzelfde als bij een praalwagen of een evenement.
‫We kunnen het bijvoorbeeld mijn float noemen.
‫Het hoeft geen spaties te hebben.
‫En als we hier een puntkomma aan het einde van de regel zouden plaatsen, dan is dat het.
‫We hebben een nieuwe variabele gedeclareerd die zichtbaar zal zijn in ons detailvenster in de editor, maar dat is niet genoeg
‫voor mij.
‫Ik zou dit eigenlijk een standaardwaarde willen geven die verschilt van de standaard 000.
‫Om dat te doen, moeten we onze woordenlijst bijwerken met een nieuwe term.
‫We hebben een constructor nodig, wat in wezen iets is in C++ dat een nieuwe struct of klasse A-waarde maakt.
‫Dus als we een constructor voor de vector zouden maken, zou dit werken als we een waarde willen toewijzen zodat
‫we gelijken bereiken.
‫En typisch als we te maken hadden met gehele getallen of floats, konden we gewoon iets gebruiken als een
‫of een waar die waren ingebouwd in waarden waarmee we de waarde van die basistypen konden instellen.
‫Maar als we meer uitgebreide typen hebben, zoals een struct, moeten we de constructor gebruiken en de constructor
‫zal altijd dezelfde naam hebben als het gegevenstype, dus de vector wordt precies hetzelfde gespeld.
‫En dan open je enkele haakjes en binnen de haakjes geef je de waarden die je wilt.
‫Dus X, Y en Z vormen samen een vector.
‫Dus we kunnen één, twee en drie hebben, allemaal gescheiden door komma's, en dan sloten we de haakjes en plaatsten een puntkomma
‫aan het einde van de regel.
‫En dat geeft een standaardwaarde van één, twee en drie in de X, Y en Z voor deze vector.
‫Laten we het eens proberen.
‫Ga terug naar Unreal en druk op de compileerknop.
‫En als dat eenmaal met succes is voltooid, kunnen we ervoor zorgen dat we de Moving Platform Act hebben geselecteerd in ons
‫overzicht en het detailvenster bekijken en zien dat we inderdaad een nieuwe eigenschap hebben met de naam
‫My Float.
‫De andere zijn weggenomen en de waarden in de verschillende posities, X, Y en Z, zijn één, twee en
‫drie, precies zoals we hadden verwacht.
‫Dus dat is geweldig.
‫Maar wat als ik deze waarden zou willen bemachtigen en ze misschien in een ander pand zou willen plakken?
‫Dus als ik een andere eigenschap zou hebben die is gemarkeerd als ergens toegevoegd, zodat ik deze in
‫de inspecteur kan zien, typ ik float genaamd mijn x en zal dit standaard op nul zetten, zodat we kunnen zien dat we het veranderen.
‫En wat ik wil doen is de x-waarde uit de my float halen in begin play en ik wil deze in
‫de my x-variabele instellen.
‫Dus laten we naar het C++-bestand gaan en beginnen met spelen na de regel die supergroot in het spel zegt, we gaan mijn
‫X gelijk stellen aan wat we willen om iets van mijn vector te krijgen, maar we willen niet het geheel van mijn
‫vector.
‫Dat zou een fout zijn.
‫We kunnen een vector niet in een float zetten, we willen alleen het x-gedeelte van die vector.
‫Om dat te begrijpen, moeten we het concept van een operator begrijpen.
‫Operators zijn symbolen in C++ die iets doen.
‫We hebben er al een paar gezien.
‫We hebben de plus-operator gezien, die twee dingen bij elkaar optelt.
‫Er is ook een min-operator.
‫Er is de gelijkheidsoperator, de equals-operator, die toewijst.
‫Dingen.
‫Dus we gebruiken dit hier op regel 19.
‫Dat is een operator die de waarde van mijn vector toewijst aan mijn X.
‫En dan hebben we nog een operator, die we moeten leren kennen en dat is de DOT-operator.
‫Het is een operator die iets uit een struct of klasse haalt.
‫Dus we willen de X uit mijn vector halen.
‫Dus we gebruiken een puntoperator, we doen punt x nu gebruiken we hier geen spatie tussen de mijn vector en de x.
‫We laten deze gewoon bij elkaar lopen, dus zo laten we dingen meestal achter, ook al is het niet per se een fout
‫om spaties in te voeren.
‫Dus we hebben mijn vectorpunt x zou de x-waarde van de vector moeten krijgen en deze in de my x float moeten plaatsen.
‫Dus plaatsen we een puntkomma aan het einde van de regel daar en zoals gewoonlijk negeer ik de rode kronkels omdat het soms lang
‫duurt om ze bij te werken en soms niet correct zijn.
‫En dan gaan we in op live-codering en klikken op de knop die opnieuw compileert en gewoon controleren of
‫we een succesvol resultaat krijgen.
‫En nee, zie je, we hebben een bouwfout.
‫En als je kijkt naar de fout die zegt dat mijn vector een niet-aangegeven identificatie is en dat is omdat ik een
‫typfout heb gemaakt, ik heb de F-vector mijn float genoemd en je schreeuwt waarschijnlijk tegen je schermen.
‫Maar het is goed om je te laten zien dat zelfs experts, programmeurs fouten maken.
‫We wilden dat mijn vector noemen, dus ik ga terug naar het hoofdbestand
‫en hernoem het naar mijn vector, wat het probleem in mijn hersenen zou moeten oplossen.
‫Laten we doorgaan en nogmaals op de compileerknop klikken.
‫En dat geeft je een voorproefje van hoe het is als je fouten maakt, je krijgt een compilatiefout.
‫Het gebeurt de hele tijd.
‫In feite is het zeer zeldzaam om geen fouten te maken.
‫De eerste keer dat je iets doet, gaan we verder en klikken we op play en zullen we zien welke waarde we
‫krijgen in het detailvenster.
‫Je kunt nu zien dat mijn x is ingesteld op één, omdat dat de waarde was in de x-component van de vectorvariabele
‫my.
‫Dus ik zou je willen uitdagen om een vectorwaarde in te stellen.
‫We hebben waarden van de vector gekregen.
‫Laten we ze nu proberen in te stellen.
‫Probeer in principe de puntoperator te gebruiken om een waarde in te stellen.
‫Probeer de twee zijden van die gelijken om te draaien, zodat we in plaats daarvan de mijn X aan de rechterkant en de mijn vector aan
‫de linkerkant hebben.
‫En wat als u overstapt naar Y of z?
‫Is er een verschil dat video trekt en het probeert?
‫Oké.
‫Welkom terug.
‫Dus ik ga proberen deze twee om te draaien.
‫Laten we naar C++ gaan en in plaats daarvan beginnen met spelen.
‫Wat ik ga zeggen is dat mijn vectorpunt y gelijk is aan mijn x en plaats dan een puntkomma aan het einde van de regel.
‫En zo kunnen we ook binnen een structuur waarden instellen.
‫Dus laten we teruggaan naar Unreal en opnieuw compileren en dan kunnen we doorgaan en wat waarde instellen in mijn X.
‫Ik ga hier de waarde van vijf invullen.
‫Dan ga ik verder en speel ik en bekijk het detailvenster voor het bewegende platform.
‫En ja hoor, de y-waarde van mijn vector is in het begin van het spel bijgewerkt met de waarde in mijn x.
‫Gefeliciteerd dus.
‫We hebben gezien hoe we meer gecompliceerde typen kunnen gebruiken, de samengestelde typen zoals structs in C++.
‫Ik zie je in de volgende lezing.