‫Hallo en welkom.
‫In deze lezing gaan we kijken naar een speciale functie, de constructor genaamd, waarmee
‫we standaardwaarden kunnen geven aan eigenschappen in onze klas.
‫En we zullen zien wanneer het in de editor wordt aangeroepen.
‫Laten we erin duiken en erachter komen.
‫Nu, met deze triggercomponent, zou ik hier een tick-componentfunctie willen toevoegen, zodat
‫we kunnen controleren welke componenten, welke andere actoren deze triggercomponent momenteel overlappen en we kunnen
‫activeren als het de juiste soort actor is.
‫Het probleem is, nou, we zullen zien wat het probleem is.
‫Laten we proberen een vinkfunctie te implementeren als we naar de grab gaan om te zien hoe de declaratie van
‫een componentfunctie eruit zou moeten zien, deze moet in het openbare gedeelte staan.
‫Het is een virtuele leegte, vink componenten, delta tijd.
‫Er zijn veel parameters, dus laten we het gewoon kopiëren.
‫Ga naar de kop van de vinkcomponent, voeg deze toe onder ons begin met spelen en dan
‫gaan we die definitie kopiëren, overnemen in onze triggercomponentstap.
‫En een ding dat zal opvallen, is dat er een paar sleutelwoorden zijn die we kunnen verwijderen.
‫We kunnen het virtuele trefwoord verwijderen.
‫Dat is over het algemeen een regel die we kunnen volgen.
‫We kunnen het override-zoekwoord ook verwijderen.
‫Dit zijn dingen die niet in het C++-bestand hoeven te staan.
‫We moeten de klassenaam toevoegen.
‫Dus je probeert een component dubbele punt, dubbele punt, en dan vervangen we onze puntkomma door enkele accolades en
‫moeten we de supertick component aanroepen.
‫Dus omdat dat nogal een lange oproep is, ga ik het kopiëren van en een kopie pakken en in deze plakken.
‫Wat dit doet, is dat het in wezen de tick-componentfunctie van de ouder aanroept.
‫Dus de ouder is in dit geval onze dooscomponent.
‫Het is dus belangrijk om dat te noemen voor het geval er functionaliteit is die moet worden gebruikt en ingeschakeld om dit
‫onderdeel te laten werken.
‫Als we dat niet doen, omzeilen we in wezen al die functionaliteit en kunnen er dingen kapot gaan.
‫Heel belangrijk dus.
‫Onthoud altijd dat het een oproep tot super is wanneer we de begin-, speel- en vinkcomponent implementeren.
‫Laten we nu ons logbericht van Begin Play kopiëren en het in tick component plaatsen in plaats van tick component te
‫zeggen.
‫Als u zich aanmeldt om te zeggen dat de tick-component hier tikt, gaan we verder en compileren en kijken of
‫die tick echt werkt.
‫Zodra de compiler klaar is, laten we doorgaan en op play drukken, ons uitvoerlogboek openen en.
‫Hmm, nou, er lijkt nu niets te gebeuren.
‫De reden hiervoor is dat qua optimalisatie de meeste componenten automatisch niet-echt zijn en dat hun
‫vinkje is uitgeschakeld.
‫Dus acteurs hebben het meestal standaard ingeschakeld, maar componenten hebben het meestal uitgeschakeld.
‫Dus in feite, als we kijken naar enkele van de andere componenten die we hebben, zoals onze zet waarvan we weten
‫dat tikken voor jou werkt, kun je zien dat er bovenaan het bestand dit staat.
‫Je verplaatst een functie en het heeft deze primaire component vinkje punt B kan ooit aanvinken is gelijk aan true als je
‫deze eigenschap niet instelt op de klasse.
‫Dit is dus een eigenschap van de klasse als een eigenschap van de klassieke primaire component tick en
‫het is een struct met een B die een tick-eigenschap kan bevatten.
‫Dus wat we hier doen, is dat we deze standaardwaarde instellen op de verplaatsingsklasse wanneer we deze construeren.
‫Dat is wat deze functie is.
‫Het wordt een constructor genoemd en is een functie die wordt aangeroepen wanneer we een nieuwe mover-component maken
‫om automatisch standaardwaarden in te stellen.
‫We kunnen enkele standaardwaarden in de kop van het bestand instellen, zoals we hebben gedaan met de verplaatsingstijd van het bericht.
‫Maar een alternatief voor ooit in het headerbestand is dat we deze eigenschappen daadwerkelijk in de constructor
‫kunnen instellen.
‫Nu zou ik graag willen dat u de syntaxis hier opmerkt.
‫Als we verder gaan met het verplaatsen van het bestand, kun je zien dat een constructor precies dezelfde naam heeft als
‫de klasse.
‫Dus de you mover is de klassenaam voor onze mover-componenten en de constructor ervan wordt ook wel you mover notice
‫genoemd.
‫Het heeft ook geen retourtype.
‫Het heeft geen zin om iets terug te geven omdat we een nieuw object aan het bouwen zijn.
‫We maken deze les gewoon waar.
‫Dus alles wat we nodig hebben is toegang tot de eigenschappen van deze klasse en ook merken dat deze is ingesteld op openbaar.
‫Het staat dus in het openbare gedeelte van onze klassendefinitie.
‫Ik daag je dan ook uit om zelf afvinken mogelijk te maken.
‫Dus je gaat een constructor maken in de koptekst en houd rekening met de syntaxis die we
‫zowel in de bewegende films of H als de grijper H hebben gezien, je gaat tikken inschakelen, zoals we weer hebben gezien
‫in die andere componenten in hun CP-bestanden.
‫Dus je kunt gewoon kopiëren hoe dat wordt gedaan.
‫U kunt ook vanuit de constructor inloggen om te proberen te zien wanneer het wordt aangeroepen?
‫Is het zoals beginnen met spelen?
‫Of wordt hij geroepen voordat hij in het spel komt of zo?
‫Ga een video plaatsen en probeer het.
‫Oké.
‫Welkom terug.
‫Dus we gaan naar onze trig-component op H en gaan een nieuwe openbare sectie maken.
‫En hier herinneren we ons de dubbele punt aan het einde en dan moeten we het precies hetzelfde noemen als de
‫klas.
‫Dus dat is geen triggercomponent.
‫Het is niet je trigger, maar je triggert componenten volledig.
‫En dan hebben we geen argumenten in deze constructor, dus plaatsen we alleen lege haakjes en dan een puntkomma aan
‫het einde van de regel.
‫Nu kunnen we naar het CPP-bestand gaan en de implementatie hier uitvoeren.
‫Nogmaals, we hebben geen retourtype nodig.
‫Dus je activeert alleen componenten, de dubbele punt.
‫Dubbelpunt je activeert componenten beetje repetitief, maar zo werkt het.
‫Vervolgens plaatsen we enkele accolades en hierin kunnen we een van onze set-upcodes doen om de standaardwaarden aan de
‫klasse-instantie te geven.
‫Dus als we overgaan tot het pakken van een CPP en kijken wat het doet, kun je zien dat
‫het zijn primaire component heeft, tech punt B kan het ooit gelijk stellen aan waar.
‫Dus laten we dat uittypen.
‫Primaire component tick dot B kan ooit tick B is slechts een voorvoegsel dat we vaak gebruiken wanneer dingen een booleaans
‫type hebben dat gelijk is aan true met een kleine letter t.
‫Dus omdat wijzigingen aan een constructor niet altijd goed worden doorgevoerd in live codering, ga ik de
‫editor sluiten.
‫Ik ga opnieuw opbouwen vanuit Visual Studio-code, en dan ga ik opnieuw starten vanuit het nieuwe
‫projectbestand.
‫Als dat klaar is, ga ik verder en druk ik op play, bekijk ons outputlogboek.
‫En ja hoor, we kunnen zien dat de triggercomponent tikt.
‫Dus ik ga dat logbericht verwijderen omdat het vervelend is en het uitvoerlogboek
‫in Visual Studio-code gesloten, verwijder dit logbericht in het vinkje.
‫We kunnen zien dat het nu werkt.
‫En wat we wel wilden doen, is een log in onze constructor doen.
‫Dus laten we een nieuw logboek maken met de tekst construeren, kijken of live codering het deze keer kan oppikken
‫en dan gaan we naar ons uitvoerlogboek en kijken we meteen.
‫Hier verschijnt niets.
‫Als ik doorga en op play druk, kijk dan eens in mijn outputlog.
‫Ik kan het logbericht zien dat de triggercomponent actief is en lang van tevoren.
‫Eigenlijk kun je zien dat het ver vooruit bouwt terwijl het gewoon de wereld aan het creëren is.
‫Het begint al heel vroeg met bouwen voordat we natuurlijk beginnen met spelen, want we moeten de hele wereld klaar hebben
‫voordat we beginnen met spelen.
‫Het gebeurt dus als we op play drukken, maar in feite gebeurt het ook in de editor.
‫Dus als ik hier een actor selecteer en er vervolgens een component aan toevoeg en onze trigger toevoeg, kijk dan eens
‫naar mijn uitvoerlogboek.
‫Dan kun je zien dat het constructiebericht daadwerkelijk is afgedrukt.
‫We moeten dus voorzichtig zijn met wat we doen in onze constructors, omdat ze eigenlijk de C++-code worden genoemd, net wanneer we
‫aan het bewerken zijn, zelfs niet als we ons spel spelen.
‫Deze objecten worden gemaakt en daarom ingesteld en moeten daarom hun constructor aanroepen.
‫Ik ga door en verwijder de trigger opnieuw en ruim een beetje op door het
‫logbericht te verwijderen, samen te stellen en ook ons start-play-logbericht.
‫Goed spul.
‫Dus in deze lezing hebben we gezien hoe we onze eigen componenten zo kunnen instellen dat ze bijna identiek zijn aan
‫degene die zijn gemaakt in de sjablonen voor scènecomponenten en ACT-componenten.
‫We hebben gezien hoe we een constructor kunnen gebruiken om standaardwaarden te geven aan eigenschappen in onze klasse.
‫Ik zie je in de volgende lezing.